Lancer un exe externe sous excel

Yunchi Messages postés 100 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 14 avril 2009 - 24 févr. 2009 à 11:41
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 24 févr. 2009 à 14:13
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

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 févr. 2009 à 12:21
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)
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
24 févr. 2009 à 12:22
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.
0
Yunchi Messages postés 100 Date d'inscription lundi 30 octobre 2006 Statut Membre Dernière intervention 14 avril 2009
24 févr. 2009 à 13:03
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")
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 févr. 2009 à 14:13
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
0
Rejoignez-nous