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 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 Dim XLSFileName As String
XLSFileName = ActiveWorkbook.name
puis là c'est le drame : comment passer XLSFileName en argument ? J'ai essayé :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
ShellExecute 0, "", "monprogramme.exe", "arg1 XLSFileName""" + destFolderPath, ThisWorkbook.path, 0
Ca détecte 3 arguments mais passe XLSFileName en tant que chaine de string.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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