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

lier un CommandButton à un programme xxxxx.bat

P

Pupitror

Guest
Bonjour tout le monde,
je cherche mais je n'ai rien trouvé, alors voici mon probleme:

Comment lier un programme xyz.BAT (externe à Excel) à un bouton de controle (CommandButton) ?

Merci d'avance,
a+ et bon Week End!
Pupitror.
 

Creepy

XLDnaute Accro
Bonjour le Forum, Pupitror,

Le problème n'est pas tant de lancer le BAT que de surveiller la fin. En effet si tu lance le BAT avec une ligne de commande, la macro lance le ficheir et continue ...

Le problème est que si ton bat fait quelque chose nécéssaire à ta macro pour poursuivre (copie de fichiers par exemple), ta macro plante car le BAT n'a pas fini de travailler et la macro continue.

Mais heureusement je suis là ...

Alors :

1 - A mettre dans un module


Sub CheckEndOfCompress()
Dim hProcess As Long
    hProcess = OpenProcess(SYNCHRONIZE, True, taskId)
   
Call WaitForSingleObject(hProcess, WAIT_INFINITE)
    CloseHandle hProcess
End Sub


2 - A mettre dans ton bouton :

dim Taskid as long
taskId = Shell('c:\\start.bat',vbnormalfocus)
Call CheckEndOfCompress

et voila

++

Creepy
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…