OVH Cloud OVH Cloud

Problème de variables

3 réponses
Avatar
Coflotte
Bonjour,
Je suis en train de d=E9velopper une application VB MDI.
Mes calculs sont lanc=E9s dans un module. J'y utilise un=20
certain nombre de variables globales qui sont d=E9clar=E9es=20
dans un autre module r=E9serv=E9 pour cela.
Lors du lancement de l'application, je fais appel au=20
module de calcul et tout se passe bien. Lorsque je lance=20
une deuxi=E8me fois les calculs, un message d'erreur=20
appara=EEt car une partie de mes variables globales (je dis=20
bien une partie) ont =E9t=E9 r=E9initialis=E9es alors qu'elles=20
n'auraient pas du.
Par contre, si je met un point d'arr=EAt dans ce module ou=20
m=EAme une msgbox, je peux lancer autant de fois les calculs=20
que je veux, mes variables ne sont pas r=E9initialis=E9es.

Pouvez vous m'aider car je ne comprends rien du tout.

Merci

3 réponses

Avatar
François Picalausa
Bonjour/soir,

Tu peux éventuellement ajouter un "espion" sur tes variables globales avec
pour condition "break when value change".. de cette manière, tu sauras où
ces variables sont réinitialisées.
Il se peut aussi qu'il une faute de frappe dans un nom de variable faisant
qu'elle n'est accessible que dans un module. Por palier à celà essaye un
Option Explicit en début de chaque module, si ce n'est déjà fait.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Coflotte" a écrit dans le
message de news:036a01c39c76$7ef9a5f0$
Bonjour,
Je suis en train de développer une application VB MDI.
Mes calculs sont lancés dans un module. J'y utilise un
certain nombre de variables globales qui sont déclarées
dans un autre module réservé pour cela.
Lors du lancement de l'application, je fais appel au
module de calcul et tout se passe bien. Lorsque je lance
une deuxième fois les calculs, un message d'erreur
apparaît car une partie de mes variables globales (je dis
bien une partie) ont été réinitialisées alors qu'elles
n'auraient pas du.
Par contre, si je met un point d'arrêt dans ce module ou
même une msgbox, je peux lancer autant de fois les calculs
que je veux, mes variables ne sont pas réinitialisées.

Pouvez vous m'aider car je ne comprends rien du tout.

Merci


Avatar
Quand je met un espion, ma variable ne se réinitialise
plus. En fait, dès que l'on s'est arrêté une fois dans le
code (point d'arrêt, msgbox, espion), mes variables
gardent leurs valeurs.
D'autre part, je met des options explicit dans tous mes
modules.
Le problème est ailleurs... mais où???

-----Message d'origine-----
Bonjour/soir,

Tu peux éventuellement ajouter un "espion" sur tes


variables globales avec
pour condition "break when value change".. de cette


manière, tu sauras où
ces variables sont réinitialisées.
Il se peut aussi qu'il une faute de frappe dans un nom de


variable faisant
qu'elle n'est accessible que dans un module. Por palier à


celà essaye un
Option Explicit en début de chaque module, si ce n'est


déjà fait.

--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com


"Coflotte" a écrit


dans le
message de news:036a01c39c76$7ef9a5f0$
Bonjour,
Je suis en train de développer une application VB MDI.
Mes calculs sont lancés dans un module. J'y utilise un
certain nombre de variables globales qui sont déclarées
dans un autre module réservé pour cela.
Lors du lancement de l'application, je fais appel au
module de calcul et tout se passe bien. Lorsque je lance
une deuxième fois les calculs, un message d'erreur
apparaît car une partie de mes variables globales (je




dis
bien une partie) ont été réinitialisées alors qu'elles
n'auraient pas du.
Par contre, si je met un point d'arrêt dans ce module ou
même une msgbox, je peux lancer autant de fois les




calculs
que je veux, mes variables ne sont pas réinitialisées.

Pouvez vous m'aider car je ne comprends rien du tout.

Merci




.



Avatar
jmn
Vérifier que vous n'utilisez pas (ou ne déclarez pas) localement des noms de
variables identiques à ceux déclarés en Global.