Bonjour et merci de m'accorder votre attention. Je suis un débutant dans la programmation et je rencontre un petit problème de lancement.
Je dois utiliser un fichier Excel pour lancer un autre programme. En appuyant sur un bouton, on lance une macro VBA qui contient le fameux ShellExecute. Or, je n'arrive pas à lancer correctement le programme avec les arguments nécessaires. J'ai repris le code d'un ancien programmeur. Pour l'instant, la commande est :
ShellExecute 0, "", "monprogramme.exe", "arg1 """ + destFolderPath, ThisWorkbook.path, 0
arg1 est une chaine de strings utilisée dans le programme lancé (codé en Java). destFolderPath est une variant contenant un chemin d'accès renseigné dans une fenêtre d'explorateur qui s'ouvre lors de l'exécution et demande le chemin. Dans l'état actuel des choses, ce code passe correctement les arguments.Je voudrais rajouter comme argument le nom du fichier excel ouvert. Dans un premier temps, je fais :
1 2
| Dim XLSFileName As String
XLSFileName = ActiveWorkbook.name |
puis là c'est le drame : comment passer XLSFileName en argument ? J'ai essayé :
ShellExecute 0, "", "monprogramme.exe", "arg1 XLSFileName""" + destFolderPath, ThisWorkbook.path, 0
Ca détecte 3 arguments mais passe XLSFileName en tant que chaine de string.
ShellExecute 0, "", "monprogramme.exe", "arg1 """ + destFolderPath + XLSFileName, ThisWorkbook.path, 0
Mais lorsque j'exécute mon programme, ça ne marche pas.
Si vous avez une idée de comment passer plusieurs arguments de type différents, je vous remercie d'avance. 
Merci
Partager