Déclare ta variable typée au niveau du formulaire pas
au niveau d'un module standard .. un petit exemple :
"La durée de vie d'une est fonction de l'endroit où celle-ci a été
déclarée.
'Déclaration de la variable
Private Type Denis
a As Integer
End Type
'Renseigne la variable
'-------------------------
Sub test()
Dim x As Denis
x.a = 25
MsgBox x.a
End Sub
'Appel de la variable.
'-------------------------
Private Sub CommandButton1_Click()
test
End Sub
Si tu veux utiliser un module standard, ajoute une procédure
qui va remettre à zéro tous les éléments de ta variables
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
x.a = 0
End Sub
"M41" a écrit dans le message de news:
45f3f162$0$27389$
Bonjour
2 problèmes différents (Excel 2002 sous Win XP)
1 //absence de remise à zéro des variables typées/
J'ai dans un module une variable Type sous forme A avec ses "déclinaisons"
.A .B .C .D
Je charge ces variables dans le code d'un Userform à travers un variant
Array (placé
dans l'initialisation de ce Userform ; Nini est déclaré Private pour tout
le
code du Userform)
Nini = Array(A.A, A.B, A.C, A.D)
N = Array(EstA, EstB, EstC, EstD) est un tableau constitué à partitr de
Const délarées Public dans le module principale (Public const EstA as
string ...)
Dans le userform les valeurs de Nini sont changées par des CheckBox
si par exemple CheckBox1.Value =True alors Nini(0)=N(0) sinon Nini(0)=""
avec aussi après A.A=Nini(0)
En fait tout se passe comme si la référence à une variable dans Nini était
remplacée par
une valeur : des Debug.Print prouvent que celà fonctionne parfaitement.
Le Userform est Unload et son programme Sub de commande (module) s'arrête
Surprise : lorsque je relance le Sub du module la variable typée A a
concervé les
valeurs de la dernière ouverture du Userform : ceci ne me semble pas
logique
puisqu'à la fermeture totale du Userforme (Unload) et après la fin du Sub
de
commande
toutes les variables devraient être remises à zéro ou "" !!!!!
S'agit il d'un bogue qui fait que lorsque l'on charge initialement un
Array
avec les valeurs d'un tableau typé, tout se passe comme si ce tableau typé
devenait Static même après arrêt total de VBA ? La remise à zéro ne se
fait
que si l'on décharge-recharge l'application.
2// EnableEvents sans effet
Application.EnableEvents = False
If X Then CheckBox1.Value = True
...entraine l'activation de
Private Sub CheckBox1_Click()
?
Cordialement
M41
Déclare ta variable typée au niveau du formulaire pas
au niveau d'un module standard .. un petit exemple :
"La durée de vie d'une est fonction de l'endroit où celle-ci a été
déclarée.
'Déclaration de la variable
Private Type Denis
a As Integer
End Type
'Renseigne la variable
'-------------------------
Sub test()
Dim x As Denis
x.a = 25
MsgBox x.a
End Sub
'Appel de la variable.
'-------------------------
Private Sub CommandButton1_Click()
test
End Sub
Si tu veux utiliser un module standard, ajoute une procédure
qui va remettre à zéro tous les éléments de ta variables
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
x.a = 0
End Sub
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
45f3f162$0$27389$ba4acef3@news.orange.fr...
Bonjour
2 problèmes différents (Excel 2002 sous Win XP)
1 //absence de remise à zéro des variables typées/
J'ai dans un module une variable Type sous forme A avec ses "déclinaisons"
.A .B .C .D
Je charge ces variables dans le code d'un Userform à travers un variant
Array (placé
dans l'initialisation de ce Userform ; Nini est déclaré Private pour tout
le
code du Userform)
Nini = Array(A.A, A.B, A.C, A.D)
N = Array(EstA, EstB, EstC, EstD) est un tableau constitué à partitr de
Const délarées Public dans le module principale (Public const EstA as
string ...)
Dans le userform les valeurs de Nini sont changées par des CheckBox
si par exemple CheckBox1.Value =True alors Nini(0)=N(0) sinon Nini(0)=""
avec aussi après A.A=Nini(0)
En fait tout se passe comme si la référence à une variable dans Nini était
remplacée par
une valeur : des Debug.Print prouvent que celà fonctionne parfaitement.
Le Userform est Unload et son programme Sub de commande (module) s'arrête
Surprise : lorsque je relance le Sub du module la variable typée A a
concervé les
valeurs de la dernière ouverture du Userform : ceci ne me semble pas
logique
puisqu'à la fermeture totale du Userforme (Unload) et après la fin du Sub
de
commande
toutes les variables devraient être remises à zéro ou "" !!!!!
S'agit il d'un bogue qui fait que lorsque l'on charge initialement un
Array
avec les valeurs d'un tableau typé, tout se passe comme si ce tableau typé
devenait Static même après arrêt total de VBA ? La remise à zéro ne se
fait
que si l'on décharge-recharge l'application.
2// EnableEvents sans effet
Application.EnableEvents = False
If X Then CheckBox1.Value = True
...entraine l'activation de
Private Sub CheckBox1_Click()
?
Cordialement
M41
Déclare ta variable typée au niveau du formulaire pas
au niveau d'un module standard .. un petit exemple :
"La durée de vie d'une est fonction de l'endroit où celle-ci a été
déclarée.
'Déclaration de la variable
Private Type Denis
a As Integer
End Type
'Renseigne la variable
'-------------------------
Sub test()
Dim x As Denis
x.a = 25
MsgBox x.a
End Sub
'Appel de la variable.
'-------------------------
Private Sub CommandButton1_Click()
test
End Sub
Si tu veux utiliser un module standard, ajoute une procédure
qui va remettre à zéro tous les éléments de ta variables
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
x.a = 0
End Sub
"M41" a écrit dans le message de news:
45f3f162$0$27389$
Bonjour
2 problèmes différents (Excel 2002 sous Win XP)
1 //absence de remise à zéro des variables typées/
J'ai dans un module une variable Type sous forme A avec ses "déclinaisons"
.A .B .C .D
Je charge ces variables dans le code d'un Userform à travers un variant
Array (placé
dans l'initialisation de ce Userform ; Nini est déclaré Private pour tout
le
code du Userform)
Nini = Array(A.A, A.B, A.C, A.D)
N = Array(EstA, EstB, EstC, EstD) est un tableau constitué à partitr de
Const délarées Public dans le module principale (Public const EstA as
string ...)
Dans le userform les valeurs de Nini sont changées par des CheckBox
si par exemple CheckBox1.Value =True alors Nini(0)=N(0) sinon Nini(0)=""
avec aussi après A.A=Nini(0)
En fait tout se passe comme si la référence à une variable dans Nini était
remplacée par
une valeur : des Debug.Print prouvent que celà fonctionne parfaitement.
Le Userform est Unload et son programme Sub de commande (module) s'arrête
Surprise : lorsque je relance le Sub du module la variable typée A a
concervé les
valeurs de la dernière ouverture du Userform : ceci ne me semble pas
logique
puisqu'à la fermeture totale du Userforme (Unload) et après la fin du Sub
de
commande
toutes les variables devraient être remises à zéro ou "" !!!!!
S'agit il d'un bogue qui fait que lorsque l'on charge initialement un
Array
avec les valeurs d'un tableau typé, tout se passe comme si ce tableau typé
devenait Static même après arrêt total de VBA ? La remise à zéro ne se
fait
que si l'on décharge-recharge l'application.
2// EnableEvents sans effet
Application.EnableEvents = False
If X Then CheckBox1.Value = True
...entraine l'activation de
Private Sub CheckBox1_Click()
?
Cordialement
M41
Déclare ta variable typée au niveau du formulaire pas
au niveau d'un module standard .. un petit exemple :
"La durée de vie d'une est fonction de l'endroit où celle-ci a été
déclarée.
'Déclaration de la variable
Private Type Denis
a As Integer
End Type
'Renseigne la variable
'-------------------------
Sub test()
Dim x As Denis
x.a = 25
MsgBox x.a
End Sub
'Appel de la variable.
'-------------------------
Private Sub CommandButton1_Click()
test
End Sub
Si tu veux utiliser un module standard, ajoute une procédure
qui va remettre à zéro tous les éléments de ta variables
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
x.a = 0
End Sub
"M41" a écrit dans le message de news:
45f3f162$0$27389$
Bonjour
2 problèmes différents (Excel 2002 sous Win XP)
1 //absence de remise à zéro des variables typées/
J'ai dans un module une variable Type sous forme A avec ses "déclinaisons"
.A .B .C .D
Je charge ces variables dans le code d'un Userform à travers un variant
Array (placé
dans l'initialisation de ce Userform ; Nini est déclaré Private pour tout
le
code du Userform)
Nini = Array(A.A, A.B, A.C, A.D)
N = Array(EstA, EstB, EstC, EstD) est un tableau constitué à partitr de
Const délarées Public dans le module principale (Public const EstA as
string ...)
Dans le userform les valeurs de Nini sont changées par des CheckBox
si par exemple CheckBox1.Value =True alors Nini(0)=N(0) sinon Nini(0)=""
avec aussi après A.A=Nini(0)
En fait tout se passe comme si la référence à une variable dans Nini était
remplacée par
une valeur : des Debug.Print prouvent que celà fonctionne parfaitement.
Le Userform est Unload et son programme Sub de commande (module) s'arrête
Surprise : lorsque je relance le Sub du module la variable typée A a
concervé les
valeurs de la dernière ouverture du Userform : ceci ne me semble pas
logique
puisqu'à la fermeture totale du Userforme (Unload) et après la fin du Sub
de
commande
toutes les variables devraient être remises à zéro ou "" !!!!!
S'agit il d'un bogue qui fait que lorsque l'on charge initialement un
Array
avec les valeurs d'un tableau typé, tout se passe comme si ce tableau typé
devenait Static même après arrêt total de VBA ? La remise à zéro ne se
fait
que si l'on décharge-recharge l'application.
2// EnableEvents sans effet
Application.EnableEvents = False
If X Then CheckBox1.Value = True
...entraine l'activation de
Private Sub CheckBox1_Click()
?
Cordialement
M41
Déclare ta variable typée au niveau du formulaire pas
au niveau d'un module standard .. un petit exemple :
"La durée de vie d'une est fonction de l'endroit où celle-ci a été
déclarée.
'Déclaration de la variable
Private Type Denis
a As Integer
End Type
'Renseigne la variable
'-------------------------
Sub test()
Dim x As Denis
x.a = 25
MsgBox x.a
End Sub
'Appel de la variable.
'-------------------------
Private Sub CommandButton1_Click()
test
End Sub
Si tu veux utiliser un module standard, ajoute une procédure
qui va remettre à zéro tous les éléments de ta variables
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
x.a = 0
End Sub
"M41" <boomerang.pro00@wanadoo.fr> a écrit dans le message de news:
45f3f162$0$27389$ba4acef3@news.orange.fr...
Bonjour
2 problèmes différents (Excel 2002 sous Win XP)
1 //absence de remise à zéro des variables typées/
J'ai dans un module une variable Type sous forme A avec ses "déclinaisons"
.A .B .C .D
Je charge ces variables dans le code d'un Userform à travers un variant
Array (placé
dans l'initialisation de ce Userform ; Nini est déclaré Private pour tout
le
code du Userform)
Nini = Array(A.A, A.B, A.C, A.D)
N = Array(EstA, EstB, EstC, EstD) est un tableau constitué à partitr de
Const délarées Public dans le module principale (Public const EstA as
string ...)
Dans le userform les valeurs de Nini sont changées par des CheckBox
si par exemple CheckBox1.Value =True alors Nini(0)=N(0) sinon Nini(0)=""
avec aussi après A.A=Nini(0)
En fait tout se passe comme si la référence à une variable dans Nini était
remplacée par
une valeur : des Debug.Print prouvent que celà fonctionne parfaitement.
Le Userform est Unload et son programme Sub de commande (module) s'arrête
Surprise : lorsque je relance le Sub du module la variable typée A a
concervé les
valeurs de la dernière ouverture du Userform : ceci ne me semble pas
logique
puisqu'à la fermeture totale du Userforme (Unload) et après la fin du Sub
de
commande
toutes les variables devraient être remises à zéro ou "" !!!!!
S'agit il d'un bogue qui fait que lorsque l'on charge initialement un
Array
avec les valeurs d'un tableau typé, tout se passe comme si ce tableau typé
devenait Static même après arrêt total de VBA ? La remise à zéro ne se
fait
que si l'on décharge-recharge l'application.
2// EnableEvents sans effet
Application.EnableEvents = False
If X Then CheckBox1.Value = True
...entraine l'activation de
Private Sub CheckBox1_Click()
?
Cordialement
M41
Déclare ta variable typée au niveau du formulaire pas
au niveau d'un module standard .. un petit exemple :
"La durée de vie d'une est fonction de l'endroit où celle-ci a été
déclarée.
'Déclaration de la variable
Private Type Denis
a As Integer
End Type
'Renseigne la variable
'-------------------------
Sub test()
Dim x As Denis
x.a = 25
MsgBox x.a
End Sub
'Appel de la variable.
'-------------------------
Private Sub CommandButton1_Click()
test
End Sub
Si tu veux utiliser un module standard, ajoute une procédure
qui va remettre à zéro tous les éléments de ta variables
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
x.a = 0
End Sub
"M41" a écrit dans le message de news:
45f3f162$0$27389$
Bonjour
2 problèmes différents (Excel 2002 sous Win XP)
1 //absence de remise à zéro des variables typées/
J'ai dans un module une variable Type sous forme A avec ses "déclinaisons"
.A .B .C .D
Je charge ces variables dans le code d'un Userform à travers un variant
Array (placé
dans l'initialisation de ce Userform ; Nini est déclaré Private pour tout
le
code du Userform)
Nini = Array(A.A, A.B, A.C, A.D)
N = Array(EstA, EstB, EstC, EstD) est un tableau constitué à partitr de
Const délarées Public dans le module principale (Public const EstA as
string ...)
Dans le userform les valeurs de Nini sont changées par des CheckBox
si par exemple CheckBox1.Value =True alors Nini(0)=N(0) sinon Nini(0)=""
avec aussi après A.A=Nini(0)
En fait tout se passe comme si la référence à une variable dans Nini était
remplacée par
une valeur : des Debug.Print prouvent que celà fonctionne parfaitement.
Le Userform est Unload et son programme Sub de commande (module) s'arrête
Surprise : lorsque je relance le Sub du module la variable typée A a
concervé les
valeurs de la dernière ouverture du Userform : ceci ne me semble pas
logique
puisqu'à la fermeture totale du Userforme (Unload) et après la fin du Sub
de
commande
toutes les variables devraient être remises à zéro ou "" !!!!!
S'agit il d'un bogue qui fait que lorsque l'on charge initialement un
Array
avec les valeurs d'un tableau typé, tout se passe comme si ce tableau typé
devenait Static même après arrêt total de VBA ? La remise à zéro ne se
fait
que si l'on décharge-recharge l'application.
2// EnableEvents sans effet
Application.EnableEvents = False
If X Then CheckBox1.Value = True
...entraine l'activation de
Private Sub CheckBox1_Click()
?
Cordialement
M41