Bonjour,
Je souhaite piloter depuis une macro vba une page internet qui n'est pas à ma main. Je me suis inspiré du (très bon) tuto que j'ai trouvé sur cette thématique.
Le site web en question est un peu particulier :
En effet il y a 2 balises <html>. Du coup j'en conclu qu'il y a 2 documents imbriqués. Au final je n'arrive pas à récupérer les objets à partir des <id> ou des <name> qui sont présents après la deuxième balise <html> (alors que j'y arrive avec le frame name ="tittlebar" par exemple)
Le code que j'utilise est le suivant :
VBA n'arrive pas à récupérer ces infos, du coup je ne suis pas en mesure de renseigner du texte dans le formulaire <input> qui va bien, ni activer le bouton de recherche <button> pour lancer le script sur la page internet depuis mon code vba :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 'Initialisation des variables Set IE = New InternetExplorerMedium IE.navigate "https://xxx.fr" IE.Visible = True 'attente du chargement de la page WaitIE IE 'récupération du doc Set IEDoc = IE.document 'récupération de la zone de texte Set InputECMZoneTexte = IEDoc.all("TitleBar_txtSearch") 'récupération du bouton d'activation de la recherche Set InputECMSearch = IEDoc.all("TitleBar_go_button")
Je ne vois pas trop quelle structure je dois adopter ? Déclarer un autre document une fois mon premier document lié ?
[EDIT] En regardant, je trouve bien des items dans mon IEDoc. Sauf que celà s'arrête aux <frame> ! Comment pourrais-je de nouveau "rentrer" dans ce frame pour aller y récupérer ce que je cherche ?
[EDIT2]
=> Comment je charge cette page ? et surtout comment je récupère les valeurs que j'aurais injecté dedans dans ma première fenêtre IE ? et comment j'actionne le bouton (qui actionné dans la page IE de la frame seule ne sert à rien car il lance un script qui va chercher ailleurs ! )On notera toutefois une exception pour l'élément <iFrame, dont la correspondance est en rouge. Le contenu de celui-ci, à savoir <html>, <head>, <title> et leurs balises de clôture respectives, n'apparaît pas dans l'objet all. Le composant iFrame est utilisé pour afficher dans le corps d'une page une autre page Web indépendante. Cette page indépendante a beau être affichée, son contenu n'est pas accessible dans l'arborescence VBA, il faudra charger cette page dans une fenêtre de navigation pour interagir avec elle.
Partager