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 VBA et Internet explorer 8


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Excel VBA et Internet explorer 8
    Bonjour,

    Je réalise une application qui à pour but de gérer des sites distants et dont l'un des fonctions est de permettre la connexion sur des systèmes de visioconférence.
    L'accès à ces matériels se fait via un page WEB sur notre Intranet sécurisée par mot de passe.

    C'est en désespoir de cause que je vous soumets aujourd'hui mon problème :

    J'ai besoin de pouvoir ramener au premier plan la page web d'un site si l'utilisateur l'a déjà ouverte.

    Ce que j'arrive à faire, c'est de savoir si la page web est déjà ouverte, d'amener IE8 au premier plan, mais en aucun cas d'afficher l'onglet du site au premier plan.

    J'ai cherché sur le WEB mais nulle part je n'ai trouvé comment on gère les onglets d'internet Explorer. Il est possible d'ouvrir une page web dans un nouvel onglet mais il semble impossible de forcer l'affichage au premier plan d'un onglet déjà présent.

    A l'aide

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Bonjour,
    Dis nous déja comment tu fais ca.
    Ce que j'arrive à faire, c'est de savoir si la page web est déjà ouverte, d'amener IE8 au premier plan, mais en aucun cas d'afficher l'onglet du site au premier plan.
    et ca
    Il est possible d'ouvrir une page web dans un nouvel onglet mais il semble impossible de forcer l'affichage au premier plan d'un onglet déjà présent.

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Une partie de la réponse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Public Declare Function BringWindowToTop Lib "user32" (ByVal hwnd As Long) As Long
    Public fenetres
    Dim myIE As New InternetExplorer
    BringWindowToTop myIE.hwnd
    Pour amener la fenêtre IE au premier plan on peut coupler cela avec une boucle qui parcourt les fenêtres ouvertes à la recherche d'une page web précise et amener IE via son handle au premier plan ( mais évidemment pas ce que je veux ie : l'onglet Web concerné au premier plan)

    pour ouvrir une page Web dans un nouvel onglet il faut utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    NavOpenNewForegroundTab (MSDN : BrowserNavConstants Enumerated Type)
    j'espère avoir répondu à tes questions. Mais as tu les réponses aux miennes ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Tout ceci est un peu compliqué pour moi mais on doit puvoir se débrouiller pour assembler les deux? Je chercherai...
    A bientôt
    nicht

    Salut,
    Si je ne m'abuse, le titre de la fenêtre d'internet explorer prend le titre ou l'adresse de l'onglet en cours.
    Je n'utilise pas ie donc je n'ai pas essayé mais peut-être que l'on peut changer le titre de la fenêtre et par conséquent, l'onglet du premier plan sera celui dont le nom ou l'adresse de la fenêtre?
    Essai et tiens nous au courant...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut c'est pas gagné...
    Il n' y a pas de doutes, l'idée est sympa mais comment faire pour savoir quel onglet à le focus ?
    Pour changer le titre de l'onglet actif il faut le trouver et ce n'est pas forcemment le premier.
    C'est une piste mais après 4H dessus j'avoue que je n'ai pas avancé...
    Enfin si :

    Set maPageHtml = IE.document

    maPageHtml.Title contient le titre de la fenêtre en question

    C'est un début...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Et bien...la fenêtre en question (mapagehtml.title) a pour titre le titre ou l'adresse de l'onglet actif...

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    bonjour,

    Tout d'abord merci de ne pas me laisser tout seul avec cet epineux problème.

    C'est vraiment appréciable.

    Concernant la nouvelle hypothèse de travail :

    Quand je parcours les pages IE ouvertes, en fait je crois que je parcours les process IE ouverts et donc a une fenêtre IE ouverte correspond un "Title".

    Il faudrait que je récupére le "Title" de la fenêtre IE sans faire de boucle sur les pages IE (là je me demande si je suis clair et sincérement j'ai un doute !)
    Parceque sinon la fenêtre change nom en fonction de la page IE trouvée. Autrement dit
    le document.title est toujours en rapport avec la page IE, c'est bien tout le problème lié à IE8 de cet espèce de conteneur "virtuel" rassemblant les onglets et le plus drôle c'est que ce n'est absolument pas documenté ....

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Re-
    Merci pour le compliment je suis flatté.

    En fait, tu as vraiment raison d'avoir un doute: je n'ai rien compris du tout (je l'ai dit: je connais rien a ie!!)

    Peut-être avec des explications un peut-plus claires...

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut tentative de clarification
    et je dis bien tentative,

    lorsque l'on fait une boucle qui parcourt l'ensemble des fenêtres I.E. et que l'on recupère le titre associé (ie : document.title) le titre de la fenêtre supportant les onglets est en rapport avec la fenêtre IE en cours (comme si la fenêtre en cours prenait le focus). ce ne correspond pas à l'état réel de la fenêtre "mère" (qui contient les onglets) qui elle à un instant T porte le titre de l'onglet qui est au premier plan.

    J'ai utilisé un outil de type SPY++ qui permet d'interroger un fenêtre Windows pour récupérer ses caractéristiques, et je me suis rendu compte que ces fenêtres ne possèdent pas de code HWND (Handle : identifiant), lorsque l'on passe d'un onglet à l'autre seuls deux paramètres changent :

    HDC(Wnd) et HDC (Client) qui semblents liès à la position géographique de la fenêtre (en hexadécimal)

    La fenêtre "container" est elle de classe IEFrame

    je deviens de plus en plus précis mais ce n'est pas pour autant que j'avance...

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    S'il te plait, je t'en t'en supplie...
    J'avais demandé des explications plus claires pas plus précises.
    Moi je suis un débutant qui apprend avec l'aide de vba et ce forum.
    Je ne sais ce que c'est moi un:
    J'ai utilisé un outil de type SPY++
    un
    code HWND (Handle : identifiant)
    un
    HDC(Wnd) et HDC (Client)
    une
    fenêtre "container" est elle de classe IEFrame

    Tu as bien de la chance de pouvoir avancer avec ça...
    Nicht

  11. #11
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 6
    Points : 1
    Points
    1
    Par défaut Des réponses
    SPY++ : un outil fourni par Microsoft dans chaque distribution visual studio qui te permet en mettant le cursuer sur une fenêtre windows de récupérer ses caractéristiques entre autres son Handle (HWND)

    Le Handle est un identifiant unique d'un objet windows dont on peut se servir via VB

    HDC je ne suis pas sur... Peut être un rapport avec la localisation de la fenêtre sur l'écran

    IEFRAME Chaque objet appartient à un class (Class Textbox...) et IEFRAME c'est la classe pour les fenêtres Internet Explorer. IE8 est un cas particulier puisqu'il y a deux modes de fonctionnement (option à cocher) : soit on utilise les onglets une seule fenêtre IE contient plusieurs pages WEB , soit on a une fenêtre par page Web (mode classique).

    voila voila...

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    75
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 75
    Points : 59
    Points
    59
    Par défaut
    Ben dis donc, on en apprend tous les jours!
    Alors, si j'ai bien compris, tu as plusieurs fenêtres de ie avec dans chacune plusieurs onglets, et ru voudrais mettre celle qui contient l'onglet de ton adresse au premier plan et selctionner cet onglet par la même occasion?

    Alors, si tu connais la position de la fenêtre et l'onglet, tu peux te servir simplement de touches |Alt|+|Tab| pour la fenêtre et |Ctrl|+|tab| pour l'onglet.
    Si tu ne connais pas leur position il faudra que je cherche (que nous cherchions ) un peu plus...

    Nicht

Discussions similaires

  1. VBA et internet explorer - ouvrir un fichier téléchargé
    Par mrcross dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/04/2012, 15h22
  2. VBA et Internet explorer
    Par sechanbask dans le forum Général VBA
    Réponses: 6
    Dernier message: 27/05/2008, 12h24
  3. [VBA-E] Internet Explorer dans Excel ?
    Par iButton dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 24/01/2007, 19h13

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