Executer des macros simultanément

emporioh Messages postés 1 Date d'inscription mardi 14 avril 2009 Statut Membre Dernière intervention 14 avril 2009 - 14 avril 2009 à 18:44
cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 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.

Merci de votre aide !

1 réponse

cs_Orohena Messages postés 577 Date d'inscription vendredi 26 septembre 2008 Statut Membre Dernière intervention 20 novembre 2010 4
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

Sub surClickBouton2()

   boucle2_active = Not boucle2_active

End Sub

Sub surClickBouton3()

   boucle2_active = Not boucle2_active

End Sub

Amicalement
0
Rejoignez-nous