IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Passer plusieurs arguments à ShellExecute


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut Passer plusieurs arguments à ShellExecute
    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

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut
    me revoila après une journée sur le problème

    en fait je me suis trompé dans mon précédent message, le destFolderPath est bien un type string également, mais contenant une information autre que "destFolderPath"

    En fait, ce qui apparait apres mes diverses tentatives, c'est que tout se passe très bien pour :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute 0, "", "XLSengine.exe", "xml destFolderPath XLSFileName", ThisWorkbook.path, 0
    On a bien trois arguments, sauf que pour destFolderPath et XLSFileName, ce sont leur nom et non leur valeur qui sont passées au programme. Je n'arrive pas à spécifier au ShellExecute leur valeur.

    Voila, je vous tiens au courant de mes avancées, si vous voyez une solution, faites moi signe, merci

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Et comme ça ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShellExecute 0, "", "XLSengine.exe", "xml "  & destFolderPath & " " & XLSFileName, ThisWorkbook.path, 0

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 17
    Par défaut
    Ca marche parfaitement !!! Je te remercie grandement ! Je n'avais pas pensé à mettre un espace et des &

    Encore merci pour ton aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer plusieurs arguments du JSP vers le controller
    Par Stef102 dans le forum Spring Web
    Réponses: 1
    Dernier message: 09/04/2011, 14h12
  2. passer plusieurs argument à une fonction callback
    Par Z-fly dans le forum GTK+ avec C & C++
    Réponses: 3
    Dernier message: 04/07/2008, 18h05
  3. Réponses: 4
    Dernier message: 07/06/2007, 11h40
  4. Passer plusieurs arguments dans un même lien
    Par The Molo dans le forum Langage
    Réponses: 3
    Dernier message: 24/04/2007, 15h00
  5. Réponses: 8
    Dernier message: 30/05/2005, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo