execution de procédures vba simultanées - VB/VBA/VBS - Programmation
Marsh Posté le 21-03-2003 à 11:55:03
hagal a écrit : bonjour, |
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 :
|
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.
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?
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?