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 :

Shell, attendre fin exe avant continuer macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut Shell, attendre fin exe avant continuer macro
    Bonjour,

    J'ai une macro VBA sous excel 2003 qui lance un exe et qui va ensuite chercher des infos dans un txt généré par l'exe et affiche le contenu.

    Mon souci est que la macro n'attend pas que l'exe soit fini avant d'aller lire le txt ...

    Est-ce qu'il existe une ligne de commande similaire à Shell qui permet de lancer un exe et d'attendre sa fin ?

    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
    Bonjour,

    essaie
    après le shell.

    Sinon, essaie avec application.wait un délai raisonnable.

  3. #3
    Membre émérite
    Avatar de fred65200
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 901
    Par défaut
    bonjour le fil,
    tu peux essayer
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Explicit
    
    'attente fin processus
    Declare Function OpenProcess Lib "kernel32" _
            (ByVal dwDesiredAccess As Long, _
            ByVal bInheritHandle As Long, _
            ByVal dwProcessId As Long) As Long
    
    Declare Function GetExitCodeProcess Lib "kernel32" _
            (ByVal hProcess As Long, _
            lpExitCode As Long) As Long
    
    Public Const PROCESS_QUERY_INFORMATION = &H400
    Public Const STILL_ACTIVE = &H103
    
    Public Sub ShellAndWait(ByVal PathName As String, Optional WindowState)
        Dim hProg As Long
        Dim hProcess As Long, ExitCode As Long
        If IsMissing(WindowState) Then WindowState = 1
        hProg = Shell(PathName, WindowState)
        hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, hProg)
        Do
            GetExitCodeProcess hProcess, ExitCode
            DoEvents
        Loop While ExitCode = STILL_ACTIVE
    End Sub
    
    Sub TestDePatience()
    Dim ShellStr As String
    'ici tu remplace Shellstr par ta commande
    'probablement
    '    Path & "\" & "file_analyzer.exe"     
        ShellAndWait ShellStr, vbHide
    End Sub
    @+

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2009
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 129
    Par défaut
    Merci avec le bout de code ça marche

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

Discussions similaires

  1. [XL-2007] Attendre fin lecture SQL ADODB avant de poursuivre
    Par Denis_67 dans le forum Excel
    Réponses: 1
    Dernier message: 10/12/2013, 10h57
  2. [AJAX] Attendre fin du foreach avant return
    Par SuperArbre dans le forum AJAX
    Réponses: 4
    Dernier message: 30/11/2012, 15h11
  3. [XL-2003] Attendre fin des calculs pour poursuivre la macro
    Par Cerize dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 23/12/2010, 09h51
  4. Attendre un changement avant de continuer
    Par diffy dans le forum VB.NET
    Réponses: 4
    Dernier message: 27/06/2008, 14h35
  5. [VB6] attendre un événement pour continuer l'exécution
    Par Argonz dans le forum VB 6 et antérieur
    Réponses: 21
    Dernier message: 12/11/2002, 13h08

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