lamquin
Messages postés35Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 5 juin 2008
-
1 déc. 2005 à 08:53
lamquin
Messages postés35Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 5 juin 2008
-
1 déc. 2005 à 15:21
Bonjour,
Je voudrais savoir comment ma macro peut détecter la fin d'éxécution d'un programme externe .exe?
je lance cet .exe depuis ma macro par la commande shell, il génére un fichier résultat, et la macro doit attendre ce fichier avant de poursuivre son éxécution. Cet exe est une fenêtre DOS.
je me débrouille en faisant un sleep de la macro pendant un certain nombre de seconde mais c'est pas très propre...
j'ai pensé détecter le nom de la command prompt et voir quand celle ci disparait des fenêtres active mais je sais pas comment faire?
lamquin
Messages postés35Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 5 juin 2008 1 déc. 2005 à 09:43
c'est du visual basic pour excel....
t'as une idée?
j'ai fais un tour sur le forum et on parle de shellexecuteex ou waitforsingleobject mais je suis perdu!! aide moi stp!!
Julien237
Messages postés883Date d'inscriptionvendredi 3 novembre 2000StatutMembreDernière intervention 3 mars 20097 1 déc. 2005 à 09:51
La fonction shell renvoie le task id du prog que tu lances, personellement j'ai jamais utilisé, (je pense que c'est pas la handle) mais tu devrais pouvoir trouver une fonction utilisant ce paramètre, et lorsque la fonction te renvoie 0 ou une erreur, c'est que le prog est terminé... Cherche du coté de ce task id...
dim h as double
h=shell(...)
while LaFonctionATrouver(h)<>0
doevents
wend
lamquin
Messages postés35Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 5 juin 2008 1 déc. 2005 à 12:50
ok je viens de faire ce que tu m'as dis mais il me met un message d'erreur comme quoi "le type défini par l'utilisateur est non défini ". il met l'erreu sur les 3 premiere lignes (dim Proc as Process_information,etc...) où je déclare les variables?
lamquin
Messages postés35Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 5 juin 2008 1 déc. 2005 à 13:39
j'ai copié les lignes de code de modApi.bas dans un nouveau module module, j'ai bien remplacé Shell "D:\TBRG\TBRG.exe par ExecCmd "D:\TBRG\TBRG de la macro, et j'obtient le message "objet requis" sur la ligne if createprocessA de la fonction ExecCmd?
Désolé de rien comprendre...
merci de ta patience...
lamquin
Messages postés35Date d'inscriptionvendredi 18 novembre 2005StatutMembreDernière intervention 5 juin 2008 1 déc. 2005 à 14:09
OK ya plus d'erreu mais l'éxécutable ne se lance pas, j'ai essayé de faire un pas à pas et il ne rentre pas dans la boucle if createprocess, il passe directement à else?
le ExecCmd devrait lancer le prog non?