Correction d'un code

Résolu/Fermé
Youyou - Modifié le 31 août 2020 à 16:52
Youyou337005478 Messages postés 4 Date d'inscription lundi 31 août 2020 Statut Membre Dernière intervention 1 septembre 2020 - 1 sept. 2020 à 13:25
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
31 août 2020 à 17:13
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
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
Modifié le 31 août 2020 à 17:33
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 lundi 31 août 2020 Statut Membre Dernière intervention 1 septembre 2020 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
31 août 2020 à 17:41
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Youyou337005478 Messages postés 4 Date d'inscription lundi 31 août 2020 Statut Membre Dernière intervention 1 septembre 2020
31 août 2020 à 18:20
pourquoi ne pas plutôt utiliser alors:
Doc.getElementsByClassName("resultat-content-categorie")
0
Youyou337005478 Messages postés 4 Date d'inscription lundi 31 août 2020 Statut Membre Dernière intervention 1 septembre 2020 > yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024
Modifié le 31 août 2020 à 20:43
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 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476 > Youyou337005478 Messages postés 4 Date d'inscription lundi 31 août 2020 Statut Membre Dernière intervention 1 septembre 2020
1 sept. 2020 à 10:02
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