vba commande savoir si la fenêtre en cours est une feuille excel ou une page web ?

philppe27

XLDnaute Occasionnel
Bonjour,

Quelqu'un pourrait il m'indiquer comment savoir si la fenêtre qui est à l'écran est une feuille excel ou une page web ?
Mon problème est le suivant:
Je suis sous Vista
J'utilise SendKeys "%{TAB}" pour basculer de ma feuille Excel à une page web. Lorsque je n'ai que ces 2 fenêtres ouvertes à priori cela devrait fonctionner correctement, mais je constate que malgré les temporisations que je mets dans le programme, très souvent la page web ne s'affiche pas derrière la commande SendKeys "%{TAB}".
Quelqu'un aurait-il une solution à mon problème qui est si simple que je n'arrive pas à le résoudre ?

Cordialement
 
G

Guest

Guest
Re : vba commande savoir si la fenêtre en cours est une feuille excel ou une page web

Bonjour,

Tout dépend de ce que tu veux faire une fois la fenêtre ie activée.

Ci-dessous une macro qui te permet d'activer la fenêtre IE mais ta macro attendra qu'elle soit désactivée pour continuer.

Code:
'en tête de module
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Declare Function SetActiveWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
 
Sub ActiverIeFrame()
    Dim hwnd As Long
    hwnd = FindWindow("IEFrame", vbNullString)
    If hwnd > 0 Then SetActiveWindow hwnd
End Sub
 
Sub ActiverExcel()
    Dim hwnd As Long
    hwnd = FindWindow("XLMAIN", vbNullString)
    If hwnd > 0 Then SetActiveWindow hwnd
End Sub

A+
 

philppe27

XLDnaute Occasionnel
Re : vba commande savoir si la fenêtre en cours est une feuille excel ou une page web

Merci Hasco.
J'ai du mal à tout comprendre.
1) j'utilise firefox. Est-il possible de modifier un code pour travailler avec firefox ?
2) Mon programme à la structure suivante:
Je suis sur la fenêtre excel
SendKeys "%{TAB}" 'je passe sur la fenêtre firefox
je fais une copie d'écran
SendKeys "%{TAB}" 'je passe sur la fenêtre excel
je fais un coller
Comment puis je utiliser tes codes dans cette structure ?

Merci d'avance.
 
G

Guest

Guest
Re : vba commande savoir si la fenêtre en cours est une feuille excel ou une page web

Re,

Pour fireFox, je ne connais pas le nom de la classe de fenêtre donc ma macro ne fonctionnera pas.

Mais si tu veux une réponse plus précise de quelqu'un d'autre, joint ta macro à ton message ou un classeur qui la contient.

A+
 

philppe27

XLDnaute Occasionnel
Re : vba commande savoir si la fenêtre en cours est une feuille excel ou une page web

Merci pour ta réponse.
Je suis en train de regarder sur IE
Ci dessous mon programme avec les éléments que tu m'as fournis:

For B = 1 To 5 '
ActiverIeFrame 'basculer sur la page web
Attendre 5
SendKeys "^a" 'tout sélectionner
Attendre 3
SendKeys "^c" 'copier
Attendre 3
ActiverExcel 'revenir sur Excel
Attendre 8
Sheets("import").Select
Range("A1").Select 'coller la copie de la page web dans la feuille import
ActiveSheet.PasteSpecial Format:="Texte Unicode", Link:=False, _
DisplayAsIcon:=False
Next B

J'ai mis tes codes dans mon module, mais cela ne semble pas fonctionner, en effet, je ne vois pas la fenêtre IE s'activer.

Merci pour ta patience
 
G

Guest

Guest
Re : vba commande savoir si la fenêtre en cours est une feuille excel ou une page web

RE,

Je viens de penser à une solution que j'utilise rarement car elle demande que tu connaisses le titre de la fenêtre à activer ou de lancer l'application (firefox) par la fonction shell:

Il s'agit de l'instruction AppActivate qui permet d'activer une fenêtre ouverte par son titre. Regarde dans l'aide excel.

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 239
Messages
2 086 503
Membres
103 236
dernier inscrit
Menni