Bonjour thahardy
je post la réponse a ta demande sur un nouveau post
et a l'avenir évite de polluer le fil d'une autre discussion
merci de ta compréhension
voila ton code
j'ai modifié la wait IE ,on oublie souvant le "IE.busy"
en effet parfois le readystate nous donne la main mais la page travaille encore
j'ai modifié l'utilisation de l'object IE maintenant en late binding afin d'avoir un fichier transportable et utilisable sur tout ordi avec exel 2003 minimum sans avoir de références a activer
j'ai tronqué aussi l'utilisation de variable object (famille "IE") pas necessaire dans ce cas présent
j'ai mis quelques commentaire qui t'aideront a comprendre le fonctionnement
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
17
18
19
20
21
22
23
24
25
26
27
28
29 Option Explicit Sub WaitIE(IE As Object) 'On boucle tant que la page n'est pas totalement chargée Do: DoEvents: Loop While IE.readystate <> 4 Or IE.busy End Sub Sub RechercheVBAExcel() 'Déclaration des variables Dim IE As Object, matable As Object, i As Long, lignes As Object, valeur As String Set IE = CreateObject("internetexplorer.application") IE.navigate "www.google.com/finance" 'Chargement d'une page Web Google IE.Visible = True 'Affichage de la fenêtre IE WaitIE IE 'On attend le chargement complet de la page With IE.document .all("q").Value = "VSAR" 'on inscrit le texte dans le textbox "q" .all("gbqfb").Click 'On click sur le bouton WaitIE IE Set matable = .getelementsbyclassname("snap-data")(0) 'on recupere la table concernée par sa classe ,c'est la 1 ere donc l'index 0 !!! Set lignes = matable.getelementsbytagname("tr") 'on prent les lignes complete du tableau For i = 0 To lignes.Length - 1 'on test si la premiere cellule de chaque ligne est ecrit "Mkt cap" si oui la valeur est la 2 eme cellule de la meme ligne If RTrim(lignes(i).Children(0).innertext) = "Mkt cap" Then valeur = lignes(i).Children(1).innertext Next End With IE.Quit Set IE = Nothing 'On libère la variable "IE" MsgBox valeur End Sub
Partager