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 :

lancer un executable depuis une macro [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut lancer un executable depuis une macro
    Bonjour,

    Je sèche, du coup je viens vous demander un coup de main.

    Pour vous expliquer très rapidement mon contexte, je reçois des pdf dans lesquels il y a des fichiers attachés.

    J'ai trouvé un exécutable qui fonctionne très bien que vous pouvez trouver ici : pdfdetach.exe

    Alors depuis le début j'utilise un fichier .bat pour lancer à la main la commande suivante :

    fichier pdfdetach.bat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    @ECHO OFF
    "C:\MyFolder\myTools\pdfdetach.exe" -saveall monfichier.pdf
    Lorsque je lance le bat il fonctionne très bien. Je tiens à signaler que le pdf contenant les fichiers attachés et le fichier bat sont dans le même répertoire de travail.


    J'ai essayé de lancer ce fichier .bat depuis VBA à l'aide de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    FunctionSubmitBatch()
    Dim Command As String
     
    Command = "C:\MyFolder\myTools\pdfdetach.bat"
    Shell Command, vbNormalFocus
    End Function
    Mais je n'ai rien en retour, les fichiers ne se détachent pas

    Du coup j'ai voulu lancer la command batch directement dans un terminal Shell via VBA à l'aide de ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    FunctionSubmitBatch()
    Dim Path As String
    Dim Command As String
    Dim Opt As String
    Dim exe As String
    Dim FileName As String
     
    Path = "C:\MyFolder\Exo\detach\"
    exe  = "pdfdetach.exe"
    Opt = "-saveall"
    FileName = Path & "monfichier.pdf"
     
    Command = Path & exe & " " & Opt & " " & FileName
    Shell Command, vbNormalFocus
    End Function
    Ce code ne change rien à première vue car aucun fichier n'est extrait du pdf.

    Je suis sous Windows 10 et j'utilise Excel 2013

    Merci d'avance pour votre aide.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par nekcorp Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Path = "C:\MyFolder\Exo\detach\"
    exe  = "pdfdetach.exe"
    Opt = "-saveall"
    FileName = Path & "monfichier.pdf"
     
    Command = Path & exe & " " & Opt & " " & FileName
    Shell Command, vbNormalFocus
    Si je comprends bien ce que je lis ici, l'exécutable et le fichier PDF à traité se trouvent dans le même répertoire. C'est bien ça ?

    Comme je ne vois pas de répertoire "destination" pour ton utilitaire, est-ce qu'il détache les fichiers dans le répertoire courant, dans le répertoire de l'exécutable ou dans le répertoire du PDF à traiter ?
    Si le BAT est dans le même répertoire que l'exécutable et le fichier à traiter, ces trois répertoires n'en font qu'un.
    En revanche, si tu lances l'exécutable depuis une macro, la question mérite qu'on se la pose.
    Parce que peut-être qu'en fait, ta macro fonctionne (hypothèse confortée par le fait que la macro ne bug pas) mais que les fichiers qui en résultent sont enregistrés dans un autre répertoire que celui auquel tu t'attends.

    As-tu été jeter un coup d'oeil dans le répertoire Documents de ta Bibliothèque ?

  3. #3
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Merci pour ta réponse.

    As-tu été jeter un coup d'oeil dans le répertoire Documents de ta Bibliothèque ?
    Alors effectivement les fichiers extraits se trouvent dans le répertoire Documents de ma Bibliothèque .

    Mais du coup si je veux que le les fichiers s'extraient dans le même répertoire que le pdf comment je fais ?

    EDIT : Je ne souhaite pas copier les fichiers depuis mes Documents car ça risque de compliquer mon code surtout que ce dossier contient pas mal de choses utilisés ou enregistrés par d'autres programmes.
    Merci

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par nekcorp Voir le message
    Mais du coup si je veux que le les fichiers s'extraient dans le même répertoire que le pdf comment je fais ?
    En modifiant le répertoire par défaut, ce qui devrait être possible avec un ChDir éventuellement précédé d'un ChDrive.
    https://docs.microsoft.com/fr-fr/off...hdir-statement
    https://docs.microsoft.com/fr-fr/off...rive-statement

  5. #5
    Membre éclairé Avatar de nekcorp
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2006
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2006
    Messages : 592
    Par défaut
    Citation Envoyé par Menhir Voir le message
    En modifiant le répertoire par défaut, ce qui devrait être possible avec un ChDir éventuellement précédé d'un ChDrive.
    https://docs.microsoft.com/fr-fr/off...hdir-statement
    https://docs.microsoft.com/fr-fr/off...rive-statement
    Ok super ça fonctionne.

    Merci beaucoup

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

Discussions similaires

  1. Lancer un executable depuis une page web
    Par neuneu1 dans le forum ASP
    Réponses: 2
    Dernier message: 02/06/2008, 18h22
  2. lancer un .exe depuis une macro
    Par 20100. dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/02/2008, 10h42
  3. lancer un executable depuis une classe java
    Par k6971 dans le forum Langage
    Réponses: 4
    Dernier message: 21/05/2007, 22h46
  4. lancer un executable depuis une page
    Par manshoon dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/08/2006, 11h33
  5. comment lancer du code depuis une macro ?
    Par faiglon dans le forum Access
    Réponses: 15
    Dernier message: 13/07/2006, 11h03

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