TOUF57
Messages postés35Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 8 septembre 2009
-
22 mai 2005 à 22:47
TOUF57
Messages postés35Date d'inscriptionmercredi 16 février 2005StatutMembreDernière intervention 8 septembre 2009
-
23 mai 2005 à 09:22
Bonjour, et merci d'avance à ceux qui répondront
Quand j'execute:
listbox1.list(0,1)=.....
listbox1.list(0,2)=....
.....
Lors du premier listbox1.list le programme execute le code:
Sub listbox1_click.
Le problème est que je comprend pas comment faire pour ne pas executer
l'evenement listbox1_click, car celui ci modifie la valeur à affecter
dans listbox1.list(0,2).
ScSami
Messages postés1488Date d'inscriptionmercredi 5 février 2003StatutMembreDernière intervention 3 décembre 200724 23 mai 2005 à 04:55
Problème récurrent !!! C'est la base de programmation évenementielle (à savoir, bloquer les événements!) !!!
Il faut implémenter un "anti-récursif".
Déjà, il faut une variable globale. Si tu n'as qu'une feuille il faut
la déclarer hors de toute procédure/fonction, c'est à dire, de
préférence tout en haut du code de ta form. En revanche, si tu as
plusieurs forms, créer un "module" et met la déclaration dedans. Bref,
une variable globale quoi!
Public AntiRecursif As Bool '(Bool>True or False> Vrai/Faux => 1/0 => Binaire quoi!)
'ou alors As Long, c'est toi qui voit!
Ensuite, dans chaque procédure ou fonction tout au début :
Private Sub maProcedure (paramètre_bidule, machin, ...)
If AntiRecursif = True Then Exit Sub
AntiRecursif = True
...
tonCode
...
AntiRecursif = False
End Sub
Surtout, n'oublie pas de rétablir l'anti-recurrence finale (juste avant "End Sub" !!!).
Du coup, avant d'appeler tes listboxX, active l'anti-récurrence :
AntiRecursif = True
ListBox1.List(...)...
Enjoy
ScSami
(Si cela répond à ta question clique sur le bouton "Accepter la réponse" sur la barre en haut, merci)