GNT sans publicité, site mobile, fonctionnalitées exclusives...

Bug Excel VBA avec une variable que si remet a zero toute seule

Le
Rémi
Bonjour à tous,

Voila je fais souvent des interventions sur le news Microsoft Excel italien.
Et ces derniers jours nous avons rencontré ce problème, qui au premier
regard parait tout simple mais incompréhensible.

Voilà : le but est de faire une variable que va de 1 en 1 avec deux macros.
la macro un augmente de un la variable
la macro deux ouvre un useform et augmente de 1 la variable
sur l'userform, suelement un objet label.

Pb : sur la macro 1 tout va bien, sur la macro 2, la variable se remet a
zero toute seule.

Mais chose encore plus étrange, est qu'elle ne se met à zero que si le VBE
est ouvert, sinon, il n'y a pas de pb !?

Ce phénomène ne se fait pas sur tout les ordi, mas nous n'avons pas encore
réussi à comprendre sur quel type le pb aparait ou non.

Voila en syntèse, je vous metle code ci jont, et vous demande de tester pour
voir si vous aussi rencontrez ce pb, et si quelqu'un à déjà vu ce pb.

Dans un module :
Public Num As Integer

Sub IncrementaNum1()
Num = Num + 1
Range("A1") = Num
End Sub
Sub IncrementaNum2()
Num = Num + 1
UserForm1.Show
Range("A1") = Num
End Sub


dans l'userform
Private Sub UserForm_Click()
Label1.Caption = 1
End Sub

Voila c'est tout !!! c'est tout bête mais tres bizzare. Merci d'avance de
prendre le tps de tester et de me donner vos impressions et suggestions.

Rémi.
Lire les 7 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #1913861
bonjour Rémi,

Label1.Caption = 1

??
y a t'il un erreur de transcription sur cette ligne ?

isabelle


Bonjour à tous,

Voila je fais souvent des interventions sur le news Microsoft Excel italien.
Et ces derniers jours nous avons rencontré ce problème, qui au premier
regard parait tout simple mais incompréhensible.

Voilà : le but est de faire une variable que va de 1 en 1 avec deux macros.
la macro un augmente de un la variable
la macro deux ouvre un useform et augmente de 1 la variable
sur l'userform, suelement un objet label.

Pb : sur la macro 1 tout va bien, sur la macro 2, la variable se remet a
zero toute seule.

Mais chose encore plus étrange, est qu'elle ne se met à zero que si le VBE
est ouvert, sinon, il n'y a pas de pb !?

Ce phénomène ne se fait pas sur tout les ordi, mas nous n'avons pas encore
réussi à comprendre sur quel type le pb aparait ou non.

Voila en syntèse, je vous metle code ci jont, et vous demande de tester pour
voir si vous aussi rencontrez ce pb, et si quelqu'un à déjà vu ce pb.

Dans un module :
Public Num As Integer

Sub IncrementaNum1()
Num = Num + 1
Range("A1") = Num
End Sub
Sub IncrementaNum2()
Num = Num + 1
UserForm1.Show
Range("A1") = Num
End Sub

dans l'userform
Private Sub UserForm_Click()
Label1.Caption = 1
End Sub

Voila c'est tout !!! c'est tout bête mais tres bizzare. Merci d'avance de
prendre le tps de tester et de me donner vos impressions et suggestions.

Rémi.


Rémi
Le #1913858
Non, c'est bien comme ça, mais cela a peu d'importance je crois, cela ne
peut pas influencer sur la variable.

Rémi.



"isabelle" news:
bonjour Rémi,

Label1.Caption = 1

??
y a t'il un erreur de transcription sur cette ligne ?

isabelle


Bonjour à tous,

Voila je fais souvent des interventions sur le news Microsoft Excel
italien.


Et ces derniers jours nous avons rencontré ce problème, qui au premier
regard parait tout simple mais incompréhensible.

Voilà : le but est de faire une variable que va de 1 en 1 avec deux
macros.


la macro un augmente de un la variable
la macro deux ouvre un useform et augmente de 1 la variable
sur l'userform, suelement un objet label.

Pb : sur la macro 1 tout va bien, sur la macro 2, la variable se remet a
zero toute seule.

Mais chose encore plus étrange, est qu'elle ne se met à zero que si le
VBE


est ouvert, sinon, il n'y a pas de pb !?

Ce phénomène ne se fait pas sur tout les ordi, mas nous n'avons pas
encore


réussi à comprendre sur quel type le pb aparait ou non.

Voila en syntèse, je vous metle code ci jont, et vous demande de tester
pour


voir si vous aussi rencontrez ce pb, et si quelqu'un à déjà vu ce pb.

Dans un module :
Public Num As Integer

Sub IncrementaNum1()
Num = Num + 1
Range("A1") = Num
End Sub
Sub IncrementaNum2()
Num = Num + 1
UserForm1.Show
Range("A1") = Num
End Sub

dans l'userform
Private Sub UserForm_Click()
Label1.Caption = 1
End Sub

Voila c'est tout !!! c'est tout bête mais tres bizzare. Merci d'avance
de


prendre le tps de tester et de me donner vos impressions et suggestions.

Rémi.




isabelle
Le #1913855
je ne réussi pas à reproduire le problème, sur mon poste la valeur de la cellule A1 est bien incrémenté dans les deux
cas, il n'y a pas de remise à zéro.

isabelle


Non, c'est bien comme ça, mais cela a peu d'importance je crois, cela ne
peut pas influencer sur la variable.

Rémi.

"isabelle" news:
bonjour Rémi,

Label1.Caption = 1

??
y a t'il un erreur de transcription sur cette ligne ?

isabelle


Bonjour à tous,

Voila je fais souvent des interventions sur le news Microsoft Excel
italien.


Et ces derniers jours nous avons rencontré ce problème, qui au premier
regard parait tout simple mais incompréhensible.

Voilà : le but est de faire une variable que va de 1 en 1 avec deux
macros.


la macro un augmente de un la variable
la macro deux ouvre un useform et augmente de 1 la variable
sur l'userform, suelement un objet label.

Pb : sur la macro 1 tout va bien, sur la macro 2, la variable se remet a
zero toute seule.

Mais chose encore plus étrange, est qu'elle ne se met à zero que si le
VBE


est ouvert, sinon, il n'y a pas de pb !?

Ce phénomène ne se fait pas sur tout les ordi, mas nous n'avons pas
encore


réussi à comprendre sur quel type le pb aparait ou non.

Voila en syntèse, je vous metle code ci jont, et vous demande de tester
pour


voir si vous aussi rencontrez ce pb, et si quelqu'un à déjà vu ce pb.

Dans un module :
Public Num As Integer

Sub IncrementaNum1()
Num = Num + 1
Range("A1") = Num
End Sub
Sub IncrementaNum2()
Num = Num + 1
UserForm1.Show
Range("A1") = Num
End Sub

dans l'userform
Private Sub UserForm_Click()
Label1.Caption = 1
End Sub

Voila c'est tout !!! c'est tout bête mais tres bizzare. Merci d'avance
de


prendre le tps de tester et de me donner vos impressions et suggestions.

Rémi.






Modeste
Le #1913832
Bongiorno Remi !!!
la première chose à laquelle j'ai pensé c'est de renommer
plus clairement la variable ,
l'utilisation du terme "num" me fait penser à un mot
réservé !!!
à tout hasard
essaie avec par exemple mia_variabile
ciao !!!
;o)))
-----Message d'origine-----
Bonjour à tous,

Voila je fais souvent des interventions sur le news
Microsoft Excel italien.

Et ces derniers jours nous avons rencontré ce problème,
qui au premier

regard parait tout simple mais incompréhensible.

Voilà : le but est de faire une variable que va de 1 en
1 avec deux macros.

la macro un augmente de un la variable
la macro deux ouvre un useform et augmente de 1 la
variable

sur l'userform, suelement un objet label.

Pb : sur la macro 1 tout va bien, sur la macro 2, la
variable se remet a

zero toute seule.

Mais chose encore plus étrange, est qu'elle ne se met à
zero que si le VBE

est ouvert, sinon, il n'y a pas de pb !?

Ce phénomène ne se fait pas sur tout les ordi, mas nous
n'avons pas encore

réussi à comprendre sur quel type le pb aparait ou non.

Voila en syntèse, je vous metle code ci jont, et vous
demande de tester pour

voir si vous aussi rencontrez ce pb, et si quelqu'un à
déjà vu ce pb.


Dans un module :
Public Num As Integer

Sub IncrementaNum1()
Num = Num + 1
Range("A1") = Num
End Sub
Sub IncrementaNum2()
Num = Num + 1
UserForm1.Show
Range("A1") = Num
End Sub


dans l'userform
Private Sub UserForm_Click()
Label1.Caption = 1
End Sub

Voila c'est tout !!! c'est tout bête mais tres bizzare.
Merci d'avance de

prendre le tps de tester et de me donner vos impressions
et suggestions.


Rémi.


.



Daniel.M
Le #1946252
Rémi,

Tu ne peux pas considérer que ta variable Public Num aura une longévité
éternelle (contrairement à ce qui est coutume dans d'autres langages).

En VBA, il existe des événements (l'instruction End, un 'Reset' dans
l'environnement VBE, la fermeture d'un classeur) qui réinitialise tes variables
globales à zéro.

Si tu as absolument besoin de t'assurer que ta variable conserve sa valeur même
en cas d'arrêt de procédure, tu devrais utiliser un Nom qui réfère à une cellule
(celle-ci pourrait être située dans une ligne cachée, ou une feuille cachée).
Ainsi, après avoir défini ce nom (Ctrl-F3, "UnNumero"), tu y accèdes dans ton
code par
Range("UnNumero")

Ça continue alors de s'incrémenter même en cas de pépin et d'arrêt intempestif
(End) de ton code.

Salutations,

Daniel M.



"Rémi" news:
Bonjour à tous,

Voila je fais souvent des interventions sur le news Microsoft Excel italien.
Et ces derniers jours nous avons rencontré ce problème, qui au premier
regard parait tout simple mais incompréhensible.

Voilà : le but est de faire une variable que va de 1 en 1 avec deux macros.
la macro un augmente de un la variable
la macro deux ouvre un useform et augmente de 1 la variable
sur l'userform, suelement un objet label.

Pb : sur la macro 1 tout va bien, sur la macro 2, la variable se remet a
zero toute seule.

Mais chose encore plus étrange, est qu'elle ne se met à zero que si le VBE
est ouvert, sinon, il n'y a pas de pb !?

Ce phénomène ne se fait pas sur tout les ordi, mas nous n'avons pas encore
réussi à comprendre sur quel type le pb aparait ou non.

Voila en syntèse, je vous metle code ci jont, et vous demande de tester pour
voir si vous aussi rencontrez ce pb, et si quelqu'un à déjà vu ce pb.

Dans un module :
Public Num As Integer

Sub IncrementaNum1()
Num = Num + 1
Range("A1") = Num
End Sub
Sub IncrementaNum2()
Num = Num + 1
UserForm1.Show
Range("A1") = Num
End Sub


dans l'userform
Private Sub UserForm_Click()
Label1.Caption = 1
End Sub

Voila c'est tout !!! c'est tout bête mais tres bizzare. Merci d'avance de
prendre le tps de tester et de me donner vos impressions et suggestions.

Rémi.




Publicité
Suivre les réponses
Poster une réponse
Anonyme