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 :

[Excel] - Tester si une application externe est active.


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut [Excel] - Tester si une application externe est active.
    Re le forum,

    Il y a quelques mois, Bbil (principalement), silkyroad et caféïne m'avaient apporté de l'aide dans ce post:
    http://www.developpez.net/forums/sho...1&postcount=16

    Il s'agissait d'ouvrir et de fermer une application externe à Windows.

    Je voudrais désormais savoir s'il y avait moyen de tester si cette application externe est ouverte ou non.

    Si oui, comment l'activer?

    Donc 2 questions:

    - comment tester
    - comment l'activer si elle est ouverte

    Dans le but d'écrire un code de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Application.Opened Then
    Activate Application
    Else Shell
    End If
    Un grand merci à celui qui n'aura pas peur de passer du temps, à moyen que ce ne soit plus simple qu'il n'y paraît.

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    ben toujours la ... :

    Comment lister les processus actifs sans utiliser l'API Windows (Win2000 et >) ?

    ton application externe .. apparaît-elle dans la liste généré par le debug.print ( fenêtre exécution CTRL G)

  3. #3
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Le problème, est qu'une fois qu'on entre là dedans, j'ai beaucoup de mal.

    Bon, j'ai essayé, il me crée bien une liste de tous les processus dont mon application en question mais elle apparaît aussi bien ouverte que fermée.

    Mais à partir de toute cette liste, comment écrire dans mon code:
    Si application ouverte l'activer (la faire venir au 1er plan). ?

    Bon, je continue à scruter cette FAQ mais j'aurai vraiment besoin d'aide, c'est pas de la mauvaise fois.

    Merci bbil

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Si tu connais le nom du processus que tu veux détecter alors ce code devrait t'aider
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub ProcessusActifs()
        Dim svc As Object
        Dim sQuery As String
        Dim oproc
        Set svc = GetObject("winmgmts:root\cimv2")
        sQuery = "select * from win32_process"
        For Each oproc In svc.execQuery(sQuery)
            Debug.Print oproc.Name
            If oproc.Name = "Excel.exe" Then MsgBox oproc.Name & " est actif !"
        Next
        Set svc = Nothing
    End Sub
    Je ne sais plus à qui je dois ce code. S'il peut te servir, je ne l'aurai pas gardé pour rien
    A+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 52
    Par défaut
    Salut

    Citation Envoyé par Chewi
    - comment l'activer si elle est ouverte
    Si par activer tu entends mettre au premier plan à l'écran voici quelles lignes qui pourraient t'aider


    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
    35
    36
    37
     
    Option Explicit
     
    Private Declare Function BringWindowToTop Lib "user32" _
    (ByVal hwnd As Long) As Long
     
    Private Declare Function ShowWindow Lib "user32" _
    (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
     
    Private Const SW_SHOWNORMAL = 1
     
    Private Sub AfficherHlp()
    'Met au premier plan la fenetre
    'mots clé : api fenêtre au premier plan
    'Source : http://www.developpez.net/forums/archive/index.php/t-190139.html
    'Auteur : Silky Road
     
    'activer la référence "Microsoft Internet Controls"
    ' !!!! Ne fonctionne pas si exection depuis VBE, executer via  un bouton, ou barre VBA!!!!
     
    Dim IE As New InternetExplorer
    Dim winShell As New ShellWindows
    Dim x As Long
     
    On Error Resume Next
    For Each IE In winShell
    If IE.LocationURL = "http://www.developpez.net/forums/" Then
        x = IE.hwnd
        Exit For
    End If
    Next IE
     
     
    BringWindowToTop x
    ShowWindow x, SW_SHOWNORMAL
     
    End Sub

  6. #6
    Membre confirmé Avatar de Chewi
    Étudiant
    Inscrit en
    Août 2006
    Messages
    180
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2006
    Messages : 180
    Par défaut
    Bonjour et déjà merci à tous,

    J'essaie de faire un mix des deux (c'est exactement les deux parties du code qu'il me faut) et je vous tiens au courant.

    Ps Ouskel'nord: tu n'as pas gardé ce fichier pour rien

    Ps choucks:
    ' !!!! Ne fonctionne pas si exection depuis VBE, executer via un bouton, ou barre VBA!!!!
    Qu'entends-tu par "barre VBA" ?
    Que puis-je faire et ne pas faire?

    Merci à vous

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 18/11/2010, 17h25
  2. Tester si une application est ouverte
    Par exceljm dans le forum VBScript
    Réponses: 1
    Dernier message: 28/05/2007, 17h12
  3. tester si une application externe est active
    Par cwain dans le forum Général VBA
    Réponses: 1
    Dernier message: 19/12/2006, 18h25
  4. Réponses: 2
    Dernier message: 11/02/2006, 12h56
  5. [Excel] Utiliser une application externe par une macro
    Par thierry2.dlp dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/08/2005, 22h07

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