Correction d'un code

Résolu
Youyou -  
Youyou337005478 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour Le forum,

J'ai essayé d'adapter un code de Dontfretbrett mais j'ai une erreur d'execution type 91 sur la ligne sDD = Trim(Doc.getElementsByTagName("resultat")(1).innerText). Pourtant la variable est définie (Dim sDD As String) ? Merci pour votre aide.

"
Private Sub Worksheet_Change(ByVal Target As Range)

 If Target.Row = Range("Lien_entreprise").Row And _
 Target.Column = Range("Lien_entreprise").Column Then
Dim Ie As New InternetExplorer
Ie.Visible = True

Ie.Navigate "https://www.pappers.fr/recherche?q=" & Range("Lien_entreprise").Value

Do
 DoEvents
Loop Until Ie.readystate = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = Ie.document
Dim sDD As String
sDD = Trim(Doc.getElementsByTagName("resultat")(1).innerText)

MsgBox sDD
End If
End Sub
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour, suggestion pour éviter cette erreur:
Dim sDD As String, elm, sss
elm = Doc.getElementsByTagName("resultat")
If Not elm Is Nothing Then
    sss = elm(1)
    sDD = Trim(sss.innerText)
    MsgBox sDD
Else
    MsgBox ("tag resultat pas present")
End If
Ie.Stop
0
Youyou
 
Bonjour yg_be,

Merci pour ta réponse, cela a en effet supprimer l'erreur. Par contre je n'ai aucune valeurs qui ressort, j'ai essayé avec plusieurs div class présente dans le code source mais aucune ne semble revenir. Une idée ? Merci :)
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
une idée pour obtenir quoi?
as-tu analysé la source HTML de la page, et déterminé ce que tu voulais récupérer?
0
Youyou337005478 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Oui, j'ai fais inspecté et j'ai ciblé le contenu d'une balise class dont je souhaitais obtenir le contenu (voir photo jointe)

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Youyou337005478 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
pourquoi ne pas plutôt utiliser alors:
Doc.getElementsByClassName("resultat-content-categorie")
0
Youyou337005478 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Je touche au but (grâce à ton aide précieuse). J'ai une erreur d'exécution sur la ligne " sss = elm(1)". Il me semble que dans la demo du code d'origine il précisait une position de la balise mais je n'ai pas bien saisie cette partie. Peux-tu m'en dire plus ?

0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > Youyou337005478 Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
tu ne montres pas ton code.
chez moi, ceci fonctionne:
Private Sub tst()
Dim Ie As New InternetExplorer
Ie.Visible = False
Ie.Navigate "https://www.pappers.fr/recherche?q=" & "test"
Do
 DoEvents
Loop Until Ie.ReadyState = READYSTATE_COMPLETE
Dim Doc As HTMLDocument
Set Doc = Ie.Document
Dim sDD As String, elm, sss
Set elm = Doc.getElementsByClassName("resultat-content-categorie")
If Not elm Is Nothing Then
    Dim ccc
    For Each ccc In elm
        Debug.Print "ccc", ccc.innerText
    Next ccc
    Set sss = elm(1)
    sDD = Trim(sss.innerText)
    MsgBox sDD
Else
    MsgBox ("tag pas present")
End If
Ie.Stop
End Sub
0