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 :

Détection de la perte de focus de la fenêtre Excel [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Par défaut Détection de la perte de focus de la fenêtre Excel
    Bonjour

    Je lance un code VBA recurrent et temporisé dans un classeur Excel.

    Je souhaite suspendre l'exécution de ce traitement lorsque la fénêtre Excel n'a plus le focus.

    Malheureusement, le fait de positioner du code dans les événéments
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Workbook_Deactivate ou WindowDeactivate
    n'a pas l'air de fonctionner

    Y a-t-il un moyen de s'appercevoir qu'Excel n'est plus la fenêtre active ?

    D'avance merci pour votre retour

    A+

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,
    sans bien comprendre ta demande, j'ai l'impression que tu utilises des "Select" ou "Activate" qui passent d'une fenêtre à l'autre, montres ton code si tel est le cas, tu constateras qu'on peut se passer de ces extensions en restant sur la fenêtre (Feuille, j'imagine) mais, je le répête, je n'ai peut-être pas compris
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Par défaut
    Bonjour

    Ma demande n'est pas de détecter les changements dans excel mais par exemple :
    - J'ai mon classeur actif, je lance ma macro
    => tout fonctionne bien
    - Je me positionne sur ma messagerie
    => Excel n'est plus la fenêtre active (c'est maintenant la messagerie)
    => Je détecte (je ne sais pas comment) ce changement et je peux comme celà interrompre ma boucle dans la macro

    Est ce plus clair ?

  4. #4
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut



    Bonjour,

    juste en passant un code bien conçu n'est pas affecté par le changement de l'application active !
    Soit il y a un besoin qui clairement n'est pas exprimé soit le code est à revoir …


    _________________________________________________________________________________________________________
    Je suis Paris, Charlie, Bruxelles, …

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour Marc-L
    un code bien conçu n'est pas affecté par le changement de l'application active
    cela peut toutefois sentir la simulation de touches (par sendkeys ou une fonction de l'Api de Windows), que l'on veut éviter "ailleurs".
    Il y a peut-être une autre explication encore, mais elle a alors à être en effet exposée.

  6. #6
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Par défaut
    Bonjour à tous

    Oui la macro fait un sendkey.

    Une fois cette information donnée, y a-t-il une réponse à ma question ?

    D'avance merci

    A+

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    je m'en doutais un peu.
    La réponse dépend maintenant des réponses à ces questions :
    1) montre ta boucle (car ce sera selon)
    2) la chose sera facile si pendant la durée de ta boucle, tu reste sur la feuille excel. Plus compliqué, mais réalisable sinon. Décris cet aspect-là également avec le maximum de précision.

  8. #8
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut




    Voir l'aide VBA de l'instruction AppActivate

  9. #9
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Par défaut
    Comme demandé, voici le bout de code en question :
    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
    Sub genere_ecriture()
     Randomize
     
     [NBR_PASSAGE].Value = 0
     Do
       [NBR_PASSAGE].Value = [NBR_PASSAGE].Value + 1
       newHour = Hour(Now())
       newMinute = Minute(Now())
       newSecond = Second(Now()) + [TEMPO].Text
       waitTime = TimeSerial(newHour, newMinute, newSecond)
       Application.Wait waitTime
     
       ActiveSheet.Cells(9, 1).Select
       SendKeys CStr(Format(Now(), "dd/mm/yyyy")) & "{ENTER}"
       DoEvents
     Loop Until GetAsyncKeyState(65) <> 0
    End Sub
    Merci de vos lumières

  10. #10
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Janvier 2007
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Santé

    Informations forums :
    Inscription : Janvier 2007
    Messages : 255
    Par défaut
    Bonjour

    J'ai utilise AppActivate et cela fonctionne.

    Merci. Peut être y a-t-il une meilleure solution mais cela me convient pour l'instant.

    A+

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

Discussions similaires

  1. Outlook et perte du focus sur une fenêtre
    Par Abac_Angelique dans le forum API, COM et SDKs
    Réponses: 0
    Dernier message: 16/07/2013, 18h28
  2. Perte de focus sur une fenêtre modale
    Par yonpo dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 07/01/2011, 14h32
  3. Perte de focus d'une fenêtre
    Par Taiby dans le forum Débuter
    Réponses: 0
    Dernier message: 10/09/2010, 20h47
  4. [2.0] Perte de focus d'une fenêtre
    Par mister3957 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 29/03/2007, 12h19
  5. Comment détecter la perte de focus d'une fenêtre
    Par Leviathan_72 dans le forum Windows
    Réponses: 5
    Dernier message: 31/12/2005, 00h22

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