[R] Problème avec les fonctions : fonction_exemple()

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

[R] Problème avec les fonctions : fonction_exemple()

#1

Message par Wink »

Bonjour,

Je suis en train de créer un programme qui va permettre à l'utilisateur de choisir parmi 4 onglets (4 services d'une entreprise) et sur chaque onglet de choisir le mois et l'année qu'il souhaite. Il valide avec un bouton OK. Une petite vérification est effectuée, au cas ou il ne renseigne pas le champ mois ou année (MsgBox)

En fait j'apprends un peu à me servir des fonctions, du coup voici comment j'ai fait :

J'ai inclus mes bibliothèques, puis ensuite j'ai directement appelé ma fonction, et la j'ai tapé tout mon code, dans cette seule et même fonction.. ce qui ne présentait donc peu d'intérêt à mes yeux, après réflexion !

Ça devait ressembler à ça :

Code : Tout sélectionner

#include <GUIConstants.au3>
#include <GUIConstantsEx.au3>
#include <ExcelCOM_UDF.au3>

Opt('MustDeclareVars', 1)   

fonction()

Func fonction()

GuiCreate ....
xxx
xxx
xxx

 
Je précise que jusque la, tout marchait impeccable....

Mais j'ai eu envie de "séparer " mon code pour le rendre plus fonctionnel, pratique, léger enfin ce que vous voulez, donc en créant plusieurs fonctions.

Et la... c'est le drame !
En gros, j'ai créé ma structure, donc la fenêtre principale, avec les 4 onglets :
► Afficher le texte

Puis je me suis dit que c'est seulement au moment ou ma fenêtre et mes onglets seraient créés que j'allais appeler ma fonction qui réaliserai ensuite ce que j'attends (les saisies utilisateurs, choix dans les menus déroulant)

J'ai donc appelé ma fonction à cet endroit, et je l'ai définie immédiatement après (je n'en suis qu'au début du projet)
► Afficher le texte
Le problème c'est que ma MsgBox s'affiche directement, celle qui renvoit une erreur lorsque l'utilisateur valide avec le bouton OK sans avoir choisi le mois ou l'année :

Code : Tout sélectionner

MsgBox(48, "SAISIE INCORRECTE", "Veuillez sélectionner l'année, SVP")
J'ai beau appuyer sur OK pour la faire disparaître, elle se répète "à l'infini".

Ou est l'erreur ???
Je vous joins le fichier, ça sera surement plus parlant !

Merci d'avance pour votre aide !

Cordialement,

Wink
Fichiers joints
zqd.au3
Problème fonction
(3.1 Kio) Téléchargé 79 fois
Modifié en dernier par Wink le ven. 19 juin 2009 11:07, modifié 1 fois.
tolf
Niveau 7
Niveau 7
Messages : 318
Enregistré le : ven. 15 févr. 2008 12:25
Localisation : Paris
Status : Hors ligne

Re: [..] Problème avec les fonctions : fonction_exemple()

#2

Message par tolf »

Pourquoi sauter 2 lignes entre vos instructions ? Du coup, vous avez moins de code visible en même temps à l'écran et vous pouvez vous perdre dans le code, ce qui produira sans doute des erreurs.
J'ai moi-même par exemple du mal à comprendre quelle était la condition qui a abouti à ce Case ou où à commencé ce Switch.
Et dans le premier code, pourquoi mettre des alinéas alors qu'on n'est pas dans une boucle, une condition ou une fonction ?

Commencez par bien présenter votre code, et vous résoudrez beaucoup de problèmes à l'avenir :wink:

Pour les alinéas, CTRL+T sera votre ami dans SciTE.
Lisez la documentation d'AutoIt en français (et participez svp :mrgreen:) !

Mes UDF :
[/i][/b]
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Problème avec les fonctions : fonction_exemple()

#3

Message par Wink »

OK, je prends bonne note, merci ! :wink:

Et concernant l'erreur....?
Aucune idée chef !?
Avatar du membre
orax
Modérateur
Modérateur
Messages : 1479
Enregistré le : lun. 23 mars 2009 04:50
Localisation : ::1
Status : Hors ligne

Re: [..] Problème avec les fonctions : fonction_exemple()

#4

Message par orax »

Dans la fonction choix_periode() vous aviez mis Local $tab0_bouton : si bien que la variable $tab0_bouton était réinitialisée (elle ne contenait plus l'ID retourné par GUICtrlCreateButton(), elle avait une valeur nulle).
Donc l'initialisation des variables dans la fonction devrait plutôt ressembler à ça :

Code : Tout sélectionner

Func choix_periode()
    Local $choix_service
    Local $msg
    Local $choix_annee, $choix_mois
    Local $box
    Local $excelopen
    Local $prepa_gal_2009 = "Z:\Stats Générales\STATS GENERALES v2\PREPARATION\2009\Préparation 2009.xlsm"
De petits détails peuvent faire toute la différence. — Quand la boule de neige commence à rouler… poussez-la. (Columbo)
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [..] Problème avec les fonctions : fonction_exemple()

#5

Message par Wink »

Alors la un grand merci, vous êtes génial !
Je test ça demain au boulot et je vous tiens au couant immédiatement !

Encore merci !

Cordialement,

Wink
Wink
Niveau 3
Niveau 3
Messages : 33
Enregistré le : mar. 02 juin 2009 16:52
Status : Hors ligne

Re: [R] Problème avec les fonctions : fonction_exemple()

#6

Message par Wink »

Super ça marche nickel !

Un grand merci à vous !

Cordialement,

Wink-
Répondre