Lancer un exe externe sous excel

Signaler
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
14 avril 2009
-
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

J'ai une fonction VB sous excel :

RetVal = Shell("file_analyzer.exe, 1)

Donc ça lance un programme dans le même dossier que mon xls.

Ce programme doit en fait ouvrir un fichier txt et l'analyser. Quand j'exécute le programme file_analyzer.exe, il fait bien son boulot, ouvre un txt et extrait des données.

Mais quand je lance cet .exe avec la fonction assignée à un bouton sous excel, ça lance le programme mais le programme ne fait pas son boulot. Ca affiche directement la fenetre "finale" avec appuyer sur une touche pour continuer sans avoir fait tout l'analyse du fichier ....

Si quelqu'un a déjà rencontrer ce problème ou connait la solution ....

Merci

4 réponses

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Salut
C'est parce que tu ne fournis pas le chemin de l'EXE et ... il ne le trouve pas
   RetVal = Shell("C:\Le chemin complet\file_analyzer.exe", vbNormalFocus)
PS : Il manque un " final à ta syntaxe
PS : Préfère les constantes vb comme vbNormalFocus, c'est plus parlant que 1

Tu parles aussi d'analyser un fichier.
Où se trouve ce fichier ?
Ton EXE va t-il le trouver ?
Tu peux essayer de lui transmettre le chemin et nom du fichier à traiter dans la même commande :
   RetVal = Shell("C:\Le chemin complet\file_analyzer.exe C:\Le chemin du fichier\Le fichier.txt", vbNormalFocus)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
Excuses, j'avais pas fais attention que l'EXE était dans le même répertoire que le XLS.
Essaye quand même de préciser le chemin, ça ne coute rien.
Messages postés
100
Date d'inscription
lundi 30 octobre 2006
Statut
Membre
Dernière intervention
14 avril 2009

Le problème ne vient pas du chemin, le programme se lançant mais n'éxécutant pas toutes les tâches.

J'ai mon dossier "simulateur" par exemple, dedans il y'a mon xls, mon exe et un txt à analyser

Je double click sur l'exe, une console se lance et fait son boulot (j'ai des printf) qui me montre qu'il analyse le fichier txt

Je lance le xls et je click sur le bouton qui lance l'exe -> une console se lance et on arrive directement à la fin du exe en fait avec les deux printf qui sont en fin de code et le system("PAUSE")
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
60
comme dit dans ton deuxieme post (pas la peine d'en ouvrir 15 !)
spécifier le working directory, dans ton file_analyser...

ou y préciser le chemin complet, obtenu directement via GetModuleBaseName