Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Temporiser une macro Pdt Execution prog externe

  • Initiateur de la discussion Initiateur de la discussion Creepy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Creepy

XLDnaute Accro
Bonsoir à toutes & tous,

Par une macro, je fais appel à un programme externe à Excel.

Mais pendant que ce programme tourne, la macro continue d'avancée et finie par plantée car elle ne peux pas 'jouer' avec le fichier en cours d'utilisation par l'autre application.

Comment peut on faire pour temporiser la macro tant que le programme externe n'a pas fini de tourner et ensuite reprendre la macro ?

Merci d'avance

++

Creepy
 
Salut Creepy

as tu regardé dans l'aide VBA du coté de la fonction DoEvents qui permet justement de temporiser pendant l'execusion d'une procèdure annexe

DoEvents, fonction


Arrête momentanément l'exécution afin que le système d'exploitation puisse traiter d'autres événements.

Syntaxe

DoEvents( )

Remarques

La fonction DoEvents renvoie une valeur de type Integer représentant le nombre de feuilles ouvertes dans les versions autonomes de Visual Basic (Visual Basic Édition professionnelle, par exemple). DoEvents renvoie un zéro dans toutes les autres applications.

DoEvents passe la main au système d'exploitation jusqu'à ce que ce dernier ait terminé de traiter les événements de sa file d'attente et que tous les codes de la file d'attente SendKeys aient été transmis.

La fonction DoEvents est particulièrement indiquée pour les opérations simples que l'utilisateur veut annuler juste après les avoir lancées, comme par exemple la recherche d'un fichier. Pour les opérations nécessitant une exécution plus longue, l'opérateur pourra plus aisément rendre la main au processeur s'il a recours à un contrôle Timer ou à un composant EXE ActiveX. Dans ce cas, la tâche s'effectue de manière complètement indépendante, hors de votre application, le système d'exploitation gérant à la fois le multitâche et le partage du temps.

Attention Lorsque vous rendez la main de manière temporaire à votre processeur dans une procédure d'événement, veillez à ce que la procédure ne soit pas exécutée à nouveau par une autre portion de votre programme, avant que le résultat du premier appel ne soit renvoyé ; cette situation peut avoir des conséquences inattendues. En outre, n'utilisez pas DoEvents s'il existe un risque d'interaction imprévisible entre d'autres applications et votre procédure pendant que l'exécution est suspendue.
Bonne nuit

Message édité par: ChTi160, à: 21/06/2005 23:52
 
Hello,

Je resuscite ce message du fonds du forum mais j'avais oublié que je l'avais posté !!

Merci ChTi160 !!

Je suis vraiment trop c** j'aurais du y penser.

On va dire que ma mémoire de poisson rouge est provoquée par la chaleur !

@+

Creepy
 
Salut Creepy

j'ai failli poster après toi sur le fil du Grand Jean Claude et j'ai fait une mauvaise manoeuvre et j'ai perdu la prose que j'avais fait pour répondre à ce malheur en mal d'intêret
enfin
Bonne journée à toi
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…