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. 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
  2. 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