Reprenons un peu de serieux. J'ai besoin dans mon projet Vba d'une variable
(un entier) accessible a toutes les procedures et modifiable a tout moment.
Je l'ai declaré de cette facon dans la partie "General" de "ThisWorkbook":
Public i As Integer
Et je l'initialise a l'ouverture du workbook:
Private Sub Workbook_open()
i=16
End sub
Ensuite dans des boutons d'userforms, j'ai des incrementations du type i = i
+ 1
Le probeme c'est qu'en regardant la valeur de i a tout moment, je vois
qu'elle retombe a 0 apres une premiere action, alors qu'il n'y a nulle part
ou je lui dis de prendre 0 pour valeur.
Je pense que le probleme vient de la facon dont je l'ai declaree et
initialisee mais meme en bidouillant ca ne marche pas. Etant loin d'etre une
superstar du Vba, je fais appel a votre experience et vos competences pour
m'aider.
Merci d'avance et bonne journee!
essaie de faire ta déclaration Public i as Interger dans un module Standard, et non dans ThisWorkbook...
Ca marche ?
CAP2
Florent149
Salut CAP2
Merci de ta suggestion, j'ai essaye et la valeur de mon i retombe encore a 0 apres la premiere procedure qui est censee mettre i= i+1. Mais je vais laisser la declaration dans un module standard car en la mettant dans This workbook ca me faisait une erreur des le depart dont je ne m'etais pas rendu compte. D'autres idees? Merci
-- Flo
"CAP2" wrote:
Salut,
essaie de faire ta déclaration Public i as Interger dans un module Standard, et non dans ThisWorkbook...
Ca marche ?
CAP2
Salut CAP2
Merci de ta suggestion, j'ai essaye et la valeur de mon i retombe encore a 0
apres la premiere procedure qui est censee mettre i= i+1.
Mais je vais laisser la declaration dans un module standard car en la
mettant dans This workbook ca me faisait une erreur des le depart dont je ne
m'etais pas rendu compte. D'autres idees?
Merci
--
Flo
"CAP2" wrote:
Salut,
essaie de faire ta déclaration Public i as Interger dans un module Standard,
et non dans ThisWorkbook...
Merci de ta suggestion, j'ai essaye et la valeur de mon i retombe encore a 0 apres la premiere procedure qui est censee mettre i= i+1. Mais je vais laisser la declaration dans un module standard car en la mettant dans This workbook ca me faisait une erreur des le depart dont je ne m'etais pas rendu compte. D'autres idees? Merci
-- Flo
"CAP2" wrote:
Salut,
essaie de faire ta déclaration Public i as Interger dans un module Standard, et non dans ThisWorkbook...
C'est gentil de t'accrocher mais non desole j'ai toujours le meme probleme. Une petite precision que je viens de decouvrir: je sais quand la valeur de i retombe a 0. Je m'explique. Normalement i=i+1 est effectue sur l'action _click() d'un commandbutton d'un userform. Et en regardant la valeur de i a chaque etape, j'ai vu que ca marchait la premiere fois que je lance l'userform et que je clique, mais quand je relance l'userform, c'est sur la ligne " Private sub Userform_initialize() " que ca s'initialise a 0! Tres bizarre puisqu'il n'y a eu aucune action de faite... Decidement je ne vois pas d'ou ca peut provenir. Donc messieurs et mesdames les geni(e)s du Vba, a vos claviers!
-- Flo
"CAP2" wrote:
On retente,
essaie une déclaration du type
Global i as integer
(dans un module Standard)
Ca marche ?
CAP2
C'est gentil de t'accrocher mais non desole j'ai toujours le meme probleme.
Une petite precision que je viens de decouvrir: je sais quand la valeur de i
retombe a 0. Je m'explique. Normalement i=i+1 est effectue sur l'action
_click() d'un commandbutton d'un userform. Et en regardant la valeur de i a
chaque etape, j'ai vu que ca marchait la premiere fois que je lance
l'userform et que je clique, mais quand je relance l'userform, c'est sur la
ligne " Private sub Userform_initialize() " que ca s'initialise a 0! Tres
bizarre puisqu'il n'y a eu aucune action de faite... Decidement je ne vois
pas d'ou ca peut provenir. Donc messieurs et mesdames les geni(e)s du Vba, a
vos claviers!
C'est gentil de t'accrocher mais non desole j'ai toujours le meme probleme. Une petite precision que je viens de decouvrir: je sais quand la valeur de i retombe a 0. Je m'explique. Normalement i=i+1 est effectue sur l'action _click() d'un commandbutton d'un userform. Et en regardant la valeur de i a chaque etape, j'ai vu que ca marchait la premiere fois que je lance l'userform et que je clique, mais quand je relance l'userform, c'est sur la ligne " Private sub Userform_initialize() " que ca s'initialise a 0! Tres bizarre puisqu'il n'y a eu aucune action de faite... Decidement je ne vois pas d'ou ca peut provenir. Donc messieurs et mesdames les geni(e)s du Vba, a vos claviers!
-- Flo
"CAP2" wrote:
On retente,
essaie une déclaration du type
Global i as integer
(dans un module Standard)
Ca marche ?
CAP2
AV
Pourquoi ne pas créer un nom au niveau du classeur et faire évoluer sa valeur ? Ca vaut bien une variable publique...
AV
Pourquoi ne pas créer un nom au niveau du classeur et faire évoluer sa valeur ?
Ca vaut bien une variable publique...