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 :

Fichier .exe qui s'ouvre avec Shell, mais ne s'exécute pas


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
    Novembre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut Fichier .exe qui s'ouvre avec Shell, mais ne s'exécute pas
    Bonjour à tous,

    Voici mon probleme :

    J'ai un fichier .exe que j'ai codé en c++ et compilé avec visual c++ express.

    Lorsque je double clic dessus, le programme s’exécute normalement mais lorsque que j'appel ce fichier via un programme en VBA sous excel il y a bien ouverture puis fermeture du fichier .exe mais il n'est pas exécuté.

    En VBA j'utilise la fonction Shell :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Shell "C:\chemin\test9.exe", 1
    Pouvez vous, s'il vous plait, m'aider a faire en sorte que mon programme (dans le fichier .exe) soit bien exécuté a partir de VBA.

    Merci

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonsoir,

    as-tu regardé l'aide en ligne (F1) sur shell ?

    la syntaxe diffère sensiblement de la tienne.

    Voici ce que j'y trouve :

    Shell Function Example
    This example uses the Shell function to run an application specified by the user. On the MacIntosh, the default drive name is “HD” and portions of the pathname are separated by colons instead of backslashes. Similarly, you would specify Macintosh folders instead of \Windows.

    ' Specifying 1 as the second argument opens the application in
    ' normal size and gives it the focus.
    Dim RetVal
    RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Run Calculator.

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut
    oui, j'ai essayé comme cela aussi mais mon programme .exe ne s'exécute pas également.

    Merci

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Rebonjour,

    essaie alors ceci (dans un module)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hWnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
     
    Sub Appel()
     
    Dim Proc As String
    Dim Parms As String
    Dim ret As Variant
     
    Proc = "C:\chemin\test9.exe"
    Parms = ""
    ret = ShellExecute(0, "open", Proc, Parms, "", 1)
    End Sub

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

    Informations forums :
    Inscription : Novembre 2010
    Messages : 17
    Par défaut
    Merci Godzestla mais cela donne le même résultat que précédemment.

    C'est à dire :
    Cela ouvre bien l'application, la parcoure et la ferme mais n’exécute pas ce qu'elle devrait exécuter.

    Je sait que l'application est bien lu car j'y est mis un code qui affiche quelque chose dans une fenêtre type "win32" au début et à la fin du programme. Les 2 choses s'affiche bien dans la fenêtre mais le programme en lui même n'est pas exécuté (en faite le programme .exe copie des données dans un fichier .csv puis travaille dessus et colle un résultat dans un autre fichier .csv).

    Donc je ne comprend pas pourquoi il n'y a pas d'exécution du programme alors que ce dernier est bien parcouru lors de son appel via VBA. (Je rappel que si je double clic sur ce même programme .exe alors l'exécution ce réalise parfaitement).

    Encore merci a toi Godzestla

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Alors là,

    As-tu essayé de lancer ton programme en dehors de excel, via un fichier .cmd ou .bat pour voir ce qui se passe.

    Le problème vient immanquablement de ton programme....

    Petite idée, juste en passant, ton code compilé il ne ferait pas appel à des objects qu'il ne trouvent pas quand tu appelles via excel car tu n'es pas dans le bon folder.

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

Discussions similaires

  1. [Access]Base qui s'ouvre avec l'éditeur de code
    Par Misha dans le forum VBA Access
    Réponses: 2
    Dernier message: 27/05/2008, 14h33
  2. Réponses: 3
    Dernier message: 14/05/2008, 13h41
  3. Patch de fichier *.exe qui sont en cours d'exécution
    Par akeix dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/07/2007, 09h57
  4. MDE qui s'ouvre avec la touche "Shift" !
    Par @rkane dans le forum Access
    Réponses: 12
    Dernier message: 28/06/2006, 09h16
  5. fenètre qui s'ouvre avec un bouton formulaire
    Par nickg dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/02/2006, 22h54

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