Bonjour (bonsoir) à tous! Je suis nouveau sur ce forum, donc je vous prie de bien vouloir m'excuser si je fais quelque chose qu'il ne faut pas faire (comme créer ce topic).
Je me suis mis à coder quelques trucs sur VBA Excel depuis une semaine environ, en grande partie grâce aux tutoriels sur internet et aux forums comme celui-ci. Mais là je rencontre un problème donc je n'ai trouvé la solution nulle part... Je travaille sur Excel 2003.
Je souhaite ouvrir Internet Explorer à partir d'une macro et remplir des champs automatiquement, en particulier pour une authentification. Le code nécessaire à ces étapes ne me pose pas de problème, voici le code que j'utilise :
Lorsque je lance la macro depuis un PC travaillant sous XP, tout se passe très bien. Notamment avec un ancien Internet Explorer qui ne gère pas les onglets.
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 Dim IE As Object Set IE = CreateObject("InternetExplorer.Application") With IE .Visible = True .Navigate "http://webmail.etu.enseeiht.fr/src/login.php" Do Until .readyState <> 4 DoEvents Loop .Document.all("login_username").Value = "login" .Document.all("secretkey").Value = "motdepasse" End With
Mais lorsque je bascule sur mon ordinateur portable fonctionnant sous Vista avec un Internet Explorer plus récent (et gérant les onglets), la macro ne s'exécute plus correctement et me sors une erreur (voir plus loin).
Pire, le fonctionnement attendu de l'ouverture de la page web est très étrange et diffère de ce qu'il se passe sous XP avec un IE moins récent.
En effet, l'ouverture de IE se fait (sous Vista), et je ne sais pas pourquoi, en 2 temps : ouverture d'une 1ere fenêtre qui ne charge aucune adresse URL et ensuite ouverture de l'URL précisée dans la macro dans une 2eme fenêtre.
J'ai alors l'impression que VBA ne prend en compte que cette 1ere fenêtre qui s'est ouverte et ne prend pas en compte la VRAIE fenêtre que je veux ouvrir. C'est donc presque logiquement que les champs ne peuvent pas être remplis avec succès, ce qui aboutit à l'erreur suivante :
La méthode 'Document' de l'objet 'IWebBrowser2' a échoué
Ma question est simple, quelqu'un comprend-t-il ce qu'il se passe avec Vista et mon Internet Explorer qui ouvre 2 fenêtres au lieu d'une ?
Et par chance si quelqu'un sait ce qu'il se passe, pourrait-il me donner une piste pour résoudre le problème, svp ?!
Voilà, je remercie d'avance toute personne s'intéressant à mon problème.
S'il vous plait, un peu d'aide!
PS : Je met en pièce jointe des screensshots pour montrer ce qu'il s'affiche sur mon écran si ce n'ets pas clair pour tout le monde.
Et désolé d'avoir fait un post aussi long^^
Partager