emporioh
Messages postés1Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention14 avril 2009
-
14 avril 2009 à 18:44
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 2010
-
16 avril 2009 à 04:13
Bonjour,
Voici mon problème:
J'ai trois macros qui tournent bien indépendamment les unes des autres.
Je les démarre et les arrête avec un bouton commande. Ces macros sont des boucles infinies qui pausent deux secondes grâce à un doevents afinde ne pas boguer le système.
J'aimerais pouvoir les executer toutes les trois en même temps (tout en gardant le contrôle sur leur execution avec le bouton commande de chacune), ie, j'aimerais avoir trois boucles infinies simultanées.
Or, lorsque je démarre la deuxième, elle arrête l'execution de la première boucle infinie.
Auriez-vous une idée? Compte tenu de la structure des macros, je ne peux pas les imbriquer les unes dans les autres.
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 16 avril 2009 à 04:13
Bonjour
Voici ce que je te suggère : tes trois boucles ne doivent pas être infinies, mais lancées alternativement par une boucle de contrôle qui, elle, est infinie. Les variables de chaque boucle doivent être soit Static soit globales au niveau du module.
Pour illustrer cette suggestion, voici un exemple :
Dim boucle1_active As Boolean
Dim boucle2_active As Boolean
Dim boucle3_active As Boolean
Sub boucle_controle()
Do While 1 = 1
execute_boucle1
execute_boucle2
execute_boucle3
DoEvents
Loop
End Sub
Sub execute_boucle1()
If Not boucle1_active Then Exit Sub
Dim cnt As Integer
Static maVariable As Integer
For cnt = 1 To 100
...
Next
End Sub
Sub execute_boucle2()
' sur le même modele que execute_boucle1()
End Sub
Sub execute_boucle3()
' sur le même modele que execute_boucle1()
End Sub
Sub surClickBouton1()
boucle1_active = Not boucle1_active
End Sub