Bonjour à tous,
Je m'arrache les cheveux depuis ce matin avec un étrange comportement concernant des variables.
Pour mon application, j'ai déclaré des variables publiques. J'utilise ces mêmes variables dans les arguments de deux de mes Sub et c'est là que ça coince.
En effet, il semble que même si ces variables portent le même nom, elles sont considérées par excel comme deux variables distinctes.
Je m'explique.
J'ai 3 variables publiques que j'utilise dans différentes procédures :
Public Var1 as Boolean
Public Var2 as Boolean
Public Var3 as Boolean
Et deux Procédures utilisant ces mêmes variables :
Sub Proc1(Var1 as Boolean, Var2 as Boolean, Var3 as Boolean)
Sub Proc2(Var1 as Boolean, Var2 as Boolean, Var3 as Boolean)
Si j'écris Proc1 False, False, True
et que j'appelle à partir de Proc1 une procédure dans laquelle les mêmes variables sont utilisées, les 3 variables sont bien attribuées dans Proc1, mais ne sont pas transférées dans la procédure appelée.
Si bien que je peux avoir simultanément Var1 = False dans Proc1 et Var1 = True dans la procédure appelée !
idem pour les 2 autres variables.
J'ai beau écrire dans Proc1 un truc qui me semble stupide, mais pourquoi pas essayer :
Var1 = Var1
Var2 = Var2
Var3 = Var3
ça ne change rien : j'ai bien 2 variables portant le même nom avec 2 valeurs différentes.
Comment est-ce possible ?
Perso, je ne vois pas ce qui explique un tel comportement. J'aimerais comprendre.
Merci pour votre aide.
Je m'arrache les cheveux depuis ce matin avec un étrange comportement concernant des variables.
Pour mon application, j'ai déclaré des variables publiques. J'utilise ces mêmes variables dans les arguments de deux de mes Sub et c'est là que ça coince.
En effet, il semble que même si ces variables portent le même nom, elles sont considérées par excel comme deux variables distinctes.
Je m'explique.
J'ai 3 variables publiques que j'utilise dans différentes procédures :
Public Var1 as Boolean
Public Var2 as Boolean
Public Var3 as Boolean
Et deux Procédures utilisant ces mêmes variables :
Sub Proc1(Var1 as Boolean, Var2 as Boolean, Var3 as Boolean)
Sub Proc2(Var1 as Boolean, Var2 as Boolean, Var3 as Boolean)
Si j'écris Proc1 False, False, True
et que j'appelle à partir de Proc1 une procédure dans laquelle les mêmes variables sont utilisées, les 3 variables sont bien attribuées dans Proc1, mais ne sont pas transférées dans la procédure appelée.
Si bien que je peux avoir simultanément Var1 = False dans Proc1 et Var1 = True dans la procédure appelée !
idem pour les 2 autres variables.
J'ai beau écrire dans Proc1 un truc qui me semble stupide, mais pourquoi pas essayer :
Var1 = Var1
Var2 = Var2
Var3 = Var3
ça ne change rien : j'ai bien 2 variables portant le même nom avec 2 valeurs différentes.
Comment est-ce possible ?
Perso, je ne vois pas ce qui explique un tel comportement. J'aimerais comprendre.
Merci pour votre aide.