coucou,
j'tuilise une variable 5 ou 6 fois dans différentes Sub et je me demandais si on ne pouvait pas ne la déclarer qu'une fois?
coucou,
j'tuilise une variable 5 ou 6 fois dans différentes Sub et je me demandais si on ne pouvait pas ne la déclarer qu'une fois?
salut , tu utilise tes variable ainsi :
Si oui , cela ne sert à rien de les rendre globale car elle sont simplement utilisé lors de l'appelle de PROG1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 sub PROG1() Dim TAVARIABLE as Integer ... End Sub
Si par contre , tes PROG font changer la valeur d'une variable , alors dans ce cas tu peux utiliser une VARIABLE GLOBALE
Alors,
oui je les utilise comme dans ton exemple et non mes prog ne moidifie pas la valeur de cette variable. Mais je voudrais la render globale quand meme.
Voilà la situation :
j'ai une fonction qui calcul le numéro de la semaine en cours et donc pour ne pas avoir à calculer ce N° dans chaque Sub, je voudrais par exemple déclarer en global :
- une variable qui contient la date du jour (c'est un parametre de la fonction qui me calcule le numero de la semaine en cours)
- une variable "NumSemaine" qui contient le résultat de la fonction.
donc pour l'instant je declare les variable comme ton exemple elle ne sont pas modifié mais pourtant je trouve qu'il serait interessant de les declarer en global pour ne pas avoir à appeler la fonction plusieurs fois !![]()
Pour rendre une variable Globale il te suffit de remplacer lors de ta definition de ta variable
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim TAVARIABLE As Integer
Si tu as definit cette TAVARIABLE sur une Form1 et que tu souhaite l'utilisée sur une autre Form2 , sache qu'il faut y faire appelle de la maniére suivante
Code : Sélectionner tout - Visualiser dans une fenêtre à part Public TAVARIABLE As Integer
Si ce n'est pas le cas, si tu travail sur une seule Form , alors aucun souci
Code : Sélectionner tout - Visualiser dans une fenêtre à part Form1.TAVARIABLE
Ouep ca marche mais j'arrive pas à faire sque je veux![]()
j'aurais voulu faire ca :
la declaration c'est ok mais apres jme doutais bien qu'il fallait etre dans une procedure pour affecter des valeurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 Public Test As Date Public Resultat As Integer Test = DateSerial(Year(Now()), Month(Now()), Day(Now())) Resultat = NumeroSemaine(Test) - 1
enfin si par exemple je creer une procedure dans la quelle je met que :
que je lance à l'ouverture, les variable auront la bonne valeur? lors de cahcune de leur utilisation ? (sachant que je ne les modifie pas)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Test = DateSerial(Year(Now()), Month(Now()), Day(Now())) Resultat = NumeroSemaine(Test) - 1
Bon,
pour le moment je fais comme ca j'initialise dans thisworkbook, si y'a une meilleure solution ou si ma solution peut presenter des erreur ca m'interesse de le savoir![]()
en tout cas merci dejà![]()
et bien tout depend si ton programme tourne en boucle ou pas , dans quel fonction as tu fais la demande
???Test = DateSerial(Year(Now()), Month(Now()), Day(Now()))
Resultat = NumeroSemaine(Test) - 1
Partager