Je vous en prie !
Alors, malheureusement, je suis loin d'être compétent en la matière, tout ça reste assez vague pour moi. Mais je vois grossomodo comment faire mais sans maîtriser la syntaxe.
Oui, votre code est bien plus propre mais il manque toujours la question centrale de l'élément ciblé.
Car avec le HTML.getElementsByClassName, vous stockez tous les éléments HTML relevant de la classe "c-instrument c-instrument--last" et pas qu'un seul.
Déjà, si vous arriviez à obtenir les éléments grâce à HTML.getElementByID, ce serait mieux.
Il faut donc que vous cibliez sur le ou les élements qui vous intéressent. Supposons que ce soit le premier :
Sub Grab()
Dim appIE As Object
Dim Lien$
Dim HTML As HTMLDocument
Dim PrixAction
Lien = range("E1").value 'ici le lien est en cellule E1 > ça évite de faire de la pub pour boursomara^^
Set appIE = CreateObject("internetexplorer.application")
With appIE
.navigate Lien
.Visible = True
End With
Do While appIE.Busy
DoEvents
Loop
Set HTML = appIE.document
Set PrixAction = HTML.getElementsByClassName("c-instrument c-instrument--last")
ActiveSheet.Range("A1") = PrixAction.item(0).innerText
Set PrixAction = Nothing
Set HTML = Nothing
'appIE.Quit
'Set appIE = Nothing
End Sub
Il ne faut pas que vous hésitiez à regarder ce que contiennent vos variables dans la fenêtre variables locales (qui s'affiche, si ce n'est pas déjà le cas, à partir du menu affichage de l'éditeur).
Cordialement,