Activer une autre application

Bonjour à tous et merci d'avance !

Internet explorer est déja ouvert, je souhaite depuis Excel en activer la fenêtre.

Autrement dit, comment je bascule de Excel à Internet Explorer ?

Merci

Bonjour

Une obligation impérieuse de le faire depuis Excel?

Parce que (sans vouloir t'offenser) les touches Alt et Tab sont là pour passer d'une fenêtre à l'autre.

Cordialement

Bonjour,

C'est juste histoire de l'intégrer dans une macro et aussi pour ma gouverne !

Bonjour chree74, Amadéus,

Shell "calc.exe", 3 lance la calculatrice, sans devoir préciser le chemin complet du fichier.

par contre, pour lancer Internet Explorer, c'est obligé d'indiquer le chemin complet :

Shell "C:\Program Files (x86)\Internet Explorer\iexplore.exe", 3

OU pour la version 64 bits :

Shell "C:\Program Files\Internet Explorer\iexplore.exe", 3

si tu avais déjà ouvert une fenêtre Internet Explorer, je pense que ça devrait l'activer ; mais si à la place ça ouvre une 2ème instance d'Internet d'Explorer, alors là, j'vois pas comment faire ; faudrait trouver un moyen d'accéder à la liste des applications qui sont déjà ouvertes dans Windows (la file des process).


dans chaque cas, le 2ème argument 3 est pour ouvrir l'application en fenêtre agrandie

(voir l'aide VBA de Shell pour plus d'infos)

dhany

Bonjour,

Merci pour cette info mais comme tu l'as dit çà ne répond pas précisément à ma question. Donc le sujet reste entier !

Je crois tenir une piste mais j'ai besoin d'aide pour le coup encore !

J'ai mis dans Thisworkbook ceci

Option Explicit

Private Declare PtrSafe Function BringWindowToTop Lib "user32" _
    (ByVal Hwnd As Long) As Long

Private Declare PtrSafe Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long

Private Declare PtrSafe Function ShowWindow Lib "user32" _
    (ByVal Hwnd As Long, ByVal nCmdShow As Long) As Long
 

et dans ma macro le code suivant :

   Dim Hwnd As Long
    'Récupère le Handle d'une fenêtre (la calculatrice dans cet exemple).
    'Le Handle est un nombre entier unique généré par Windows afin d'identifier les fenêtres.
    '"Calculatrice" correspond au titre de la fenêtre.
    Hwnd = FindWindow("Internet Explorer", vbNullString)

    'Si la calculatrice est déjà ouverte
    If Hwnd > 0 Then
        'Ramène la calculatrice au premier plan
        BringWindowToTop Hwnd
        'Affiche en mode "Normal"
        ShowWindow Hwnd, 1
        Else
        'Sinon, ouvre la calculatrice
        Shell "C:\Program Files\Internet Explorer\iexplore.exe",  vbNormalFocus
    End If

Mais j'ai ce message qui apparaît : "Erreur de compilation : Sub ou Fonction non définie" en sélectionnant FindWindow

 Hwnd = FindWindow("Internet Explorer", vbNullString)

up

Bonjour chree74,

"Erreur de compilation : Sub ou Fonction non définie"

normal que ta sub FindWindow() ne soit pas reconnue ! tu as mis sa déclaration dans ThisWorkBook et tu l'utilises dans un module tel que Module1 alors que la sub est Private : elle est donc visible uniquement dans le code de ThisWorkbook ; solution : tout c'que tu as mis dans ThisWorkbook, déplace-le par couper/coller au début de Module1 (avant ta sub).

dhany

Bonjour Dhany,

merci pour ta réponse et grâce à ta remarque j'avance bien !

par contre le Hwnd me renvoi la valeur 0 et donc ne met pas au premier Internet explorer alors qu'il est ouvert.

Pour info : c'est la version 11 de IE et la page ouverte est intitulée "Révision des résultats de tests"

   Hwnd = FindWindow("Internet Explorer", vbNullString)

    'Si la calculatrice est déjà ouverte
    If Hwnd > 0 Then
        'Ramène la calculatrice au premier plan
        BringWindowToTop Hwnd
        'Affiche en mode "Normal"
        ShowWindow Hwnd, 1

Donc il m'ouvre IE de nouveau.

tu a écrit :

grâce à ta remarque j'avance bien !

merci pour ton retour ! mais pour la suite, j'connais pas assez bien les Handles pour pouvoir te répondre ; de plus, j'utilise Google Chrome et pas Internet Explorer ; j'espère qu'un autre intervenant te trouvera une solution ; bonne chance !

dhany

merci j'attends une âme charitable !

Bonjour,

Finalement c'était plus simple que je ne l'imaginais...

il suffisait de mettre :

  AppActivate "intitulé de l'onglet IE"

pour basculer sur IE.

Voilà !

Bonjour chree74,

bravo pour avoir trouvé une solution par toi-même !

merci pour avoir partagé cette solution avec le forum !

merci aussi d'avoir passé le sujet en résolu !

dhany

Rechercher des sujets similaires à "activer application"