execution de procédures vba simultanées

execution de procédures vba simultanées - VB/VBA/VBS - Programmation

Marsh Posté le 21-03-2003 à 11:25:52    

bonjour,
 
J'ai de nombreuses code VBA dans un classeur qui se  
déclanchent sur évenements ou à une heure précise.
 
Le problème est que lors de l'execution d'une macro, une  
autre peut se déclancher. mais ces exécutions simultanées  
perturbent excel, voir font planter les macros.
 
Y a t-il un moyen pour exécuter des codes VBA  simultanément ?
 
ou faut-il passer par une var globale et utiliser une  
pile?

Reply

Marsh Posté le 21-03-2003 à 11:25:52   

Reply

Marsh Posté le 21-03-2003 à 11:55:03    

hagal a écrit :

bonjour,
 
J'ai de nombreuses code VBA dans un classeur qui se  
déclanchent sur évenements ou à une heure précise.
 
Le problème est que lors de l'execution d'une macro, une  
autre peut se déclancher. mais ces exécutions simultanées  
perturbent excel, voir font planter les macros.
 
Y a t-il un moyen pour exécuter des codes VBA  simultanément ?
 
ou faut-il passer par une var globale et utiliser une  
pile?
 

est-ce que tes macros modifient les mêmes données (ou les mêmes cellules excel) ? si c'est le cas, je doute que ça soit possible de les executer simultanement sans que ça merde. Il fuadrait qu'en début de chaque macro tu mette une boucle d'attente genre:

Code :
  1. While macroIsRunning
  2.     DoEvents
  3. wend


 
où macroIsRunning est une variable globale que tu met à true quand tu entres dans une macro (après la boucle d'attente) et à false quand tu en sors.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 21-03-2003 à 13:08:00    

non les macros ne modifient pas les memes données.
 
il y a des macros d'enregistrement en base qui se déclanche à cetaines heures par exemple. Il y a un evenement qui se déclanche sur une feuille (OnChange) pour voir si les données sont modifées et le cas écheant afficher un popup (plusieurs macros qui s'enchainent puis résultat dans un userform).
 
le pb est que l'evenement sur le popup se déclanche continuellement (car flux temps réel). le popup est donc déclanché plusieurs fois par seconde mais parfois apres 2h. (normal)
 
le pb est donc qd un popup se déclanche puis une macro d'enregistrment enchaine, le popup bloque l'enregistrement,ce dernier se réalise à la fermeture du popup mais il exécute deux fois l'enregistrement (la fin pas achevée puis comme ca ne s'est pas bien passé, il recommence)
 
il y a aussi d'autres macros qui se rajoutent.  
 
donc a priori c'est le seul moyen. peut on faire executer des macro dans un autre classeur? thread... ou autres?
 
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed