Bonjour,
le texte étant dans une propriété précise -
content - d'un élément particulier, il n'est donc pas récupérable ailleurs …
Mais encore faut-il synchroniser l'exécution du code non seulement avec le chargement de la page initiale
mais aussi avec la mise à jour du
Document après le
click avant de cibler enfin l'élément
et accéder à sa propriété comme dans les exemples des discussions de ce forum …
C'est le problème du code précédent, il a déjà terminé alors que la mise à jour n'a pas commencé !
Première démonstration en déclaration tardive (sans cocher de référence, consulter le chapitre II-B de
l'excellent tutoriel
Interaction avec Internet Explorer via VBA Excel), résultat dans la fenêtre
Exécution :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Sub Demo1()
Z! = Timer
With CreateObject("InternetExplorer.Application")
.Navigate "http://www.boursorama.com/"
While .Busy Or .ReadyState < 4: DoEvents: Wend
With .Document
.all("search-query").value = "LU0227384020"
.all("search-spinner-submit").click
While .ReadyState <> "complete": DoEvents: Wend
T$ = .all("keywords").content
End With
.Quit
End With
Debug.Print vbLf; "Demo1 : "; Format(Timer - Z, "0.000s"); vbLf; T
End Sub |
L'autre voie possible en pilotant IE pouvant être un peu plus rapide (relatif car piloter IE étant la solution de derniers recours
car la plus lente, la plus contraignante et la moins fiable !) est de ne pas attendre la mise à jour complète du
Document
mais d'extraire directement le texte depuis la bonne section du code - tiens en observant ce dernier, laquelle est-ce ? -
une fois chargé via
des fonctions VBA manipulant les chaînes de caractères …
_____________________________________________________________________________________________________

Merci de cliquer sur

pour chaque message ayant aidé puis sur

pour clore cette discussion …
_____________________________________________________________________________________________________
Je suis Charlie, Bardo, Sousse
Partager