Correction d'un code

Résolu
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

2 réponses

  1. Contributeur
    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
    1. 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 :)
      1. Contributeur
        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?
      2. @yg_beOui, j'ai fais inspecté et j'ai ciblé le contenu d'une balise class dont je souhaitais obtenir le contenu (voir photo jointe)

      3. Contributeur
        @Youyou337005478pourquoi ne pas plutôt utiliser alors:
        Doc.getElementsByClassName("resultat-content-categorie")
      4. @yg_beJe 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 ?

      5. Contributeur
        @Youyou337005478tu 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