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 :

[VBA E] notification de fin de tache


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut [VBA E] notification de fin de tache
    Bonjour,

    Je suis en train de développer un bout de code en Visual Basic 6.3 pour une feuille excel. Celle-ci permet via des boutons de lancer des .bat avec la commande Shell (ceci afin de pouvoir continuer l'execution du code vb).
    Afin d'agrémenter ma feuille, je souhaiterai être averti automatiquement de la fin de l'execution de la commande Shell (par une combobox ou le changement de couleur d'une cellule de la feuille). Pour le moment je récupère le process id généré par la commande Shell puis je dois cliquer sur un bouton pour tester son existence.
    Pouvez-vous me donner quelques pistes pour être notifié automatiquement dès que le process est terminé sans avoir à cliquer sur un bouton?
    Merci de votre aide

  2. #2
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir

    j'espere que cet exemple pourra t'aider

    La procedure ouvre la calculatrice et colorie la cellule A1, uniquement lorsque la calculatrice est refermée (testé avec Excel2002 & WinXP)


    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
    Option Explicit
     
    Declare Function WaitForSingleObject Lib "Kernel32" (ByVal hHandle As Long, _
        ByVal dwMilliseconds As Long) As Long
    Declare Function OpenProcess Lib "Kernel32" (ByVal dwDesiredAccess As Long, _
        ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
     
     
    Sub lancementProcedure()
        Dim RetVal As Long
        Dim hHandle As Long
        Dim dwProcessId As Long
     
        'Ouvre la calculatrice
        dwProcessId = Shell("C:\Windows\system32\calc.exe", vbNormalFocus)
        hHandle = OpenProcess(&H1F0000, 0, dwProcessId)
        RetVal = WaitForSingleObject(hHandle, &HFFFF)
     
        'Colorie la cellule en vert lorsque la calculatrice est refermée
        If RetVal = 0 Then Range("A1").Interior.ColorIndex = 4
     
    End Sub

    bonne soiree
    michel

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Mars 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 2
    Par défaut
    Merci Michel pour ta réponse,

    j'ai avancé dans mon code,
    mais le seul petit pb est la synchronisation synchrone à cause de la fonction :
    (obligé d'attendre que la commande shell se termine pour continuer le code)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RetVal = WaitForSingleObject(hHandle, &HFFFF)
    je voudrais pouvoir garder la main pendant l'execution de la commande shell, et n'être alerté qu'une fois que celle-ci est terminée. Peut-être faut il que je mette un timer qui vérifirait si 'hHandle' est toujours présent ? si non, la commande est terminée ?

    Qu'en pensez vous ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Par défaut
    bonsoir Alex

    malheureusement je n'ai pas de solution à te proposer...désolé


    bonne soiree
    michel

Discussions similaires

  1. [TSO] reception des notifications de fin de Job
    Par rodrigue62 dans le forum z/OS
    Réponses: 6
    Dernier message: 09/07/2008, 13h45
  2. fin de tache d'un processus
    Par cmarsc dans le forum Mandriva / Mageia
    Réponses: 4
    Dernier message: 18/09/2007, 08h54
  3. [VBA-W] Navigation à la fin d'un tableau word
    Par tazamorte dans le forum VBA Word
    Réponses: 8
    Dernier message: 21/06/2007, 10h19
  4. [vba] Affichage dans la barre des taches
    Par ancel17 dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 18/06/2007, 14h32
  5. fin de tache d'une application console
    Par zoheir13 dans le forum Delphi
    Réponses: 14
    Dernier message: 16/06/2007, 20h05

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