Lire un tableau dans une page Internet

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nonno 94

XLDnaute Occasionnel
Bonjour le Forum,😕

les codes obligeamment communiqués par Myta m'ayant permis de lire successivement des données puis des blocs de données, j'ai tenté sans succès de les modifier pour lire, dans une page Internet, une ligne dans un tableau puis le tableau entier.

Ainsi, dans la feuille "Ligne SRD" du fichier joint, pour lire une ligne comportant 8 données, je n'arrive à en lire que ....4!
Dans la feuille "Tableau SRD", la performance est encore plus minable !

Je viens donc solliciter à nouveau votre aide pour modifier ces 2 codes.

Je vous remercie par avance pour vos réponses et vous souhaite une bonne journée.

Cordialement.
Nonno 94.
 
Re : Lire un tableau dans une page Internet

Salut le forum

Tu ne fais pas grand effort
Code:
Sub Lire_Ligne_SRD_Myta()

    Dim IE As New InternetExplorer
    Dim IEDoc As HTMLDocument
    Dim HtmlTag As IHTMLElementCollection
    Dim Titre As String, Valeur(6) As String
    Dim Cel As Range, I As Integer

    For Each Cel In Range("A2:A" & Cells(Rows.Count, 1).End(xlUp).Row)

        IE.Navigate Cel
        IE.Visible = True
        Do Until IE.readyState = READYSTATE_COMPLETE
            DoEvents
        Loop
        Set IEDoc = IE.document

        Set HtmlTag = IEDoc.getElementsByTagName("td")

        Titre = "ACCOR": Valeur(0) = "N/A"

        For I = 0 To HtmlTag.Length - 1
            If HtmlTag.Item(I).innerText = Titre Then
                Valeur(0) = HtmlTag.Item(I + 1).innerText
                Valeur(1) = HtmlTag.Item(I + 2).innerText
                Valeur(2) = HtmlTag.Item(I + 3).innerText
                Valeur(3) = HtmlTag.Item(I + 4).innerText
                Valeur(4) = HtmlTag.Item(I + 5).innerText
                Valeur(5) = HtmlTag.Item(I + 6).innerText
                Valeur(6) = HtmlTag.Item(I + 7).innerText
                Exit For
            End If
        Next I

        Cel.Offset(0, 1) = Titre
        Cel.Offset(0, 2) = Valeur(0)
        Cel.Offset(0, 3) = Valeur(1)
        Cel.Offset(0, 4) = Valeur(2)
        Cel.Offset(0, 5) = Valeur(3)
        Cel.Offset(0, 6) = Valeur(4)
        Cel.Offset(0, 7) = Valeur(5)
        Cel.Offset(0, 8) = Valeur(6)

    Next Cel

    IE.Quit
    Set HtmlTag = Nothing
    Set IEDoc = Nothing
    Set IE = Nothing

End Sub
Un bon bouquin ne ferait pas de tort
Mytå
 
Re : Lire un tableau dans une page Internet

Re-bonsoir Myta,

j'avais atteint mon seuil d'incompétence en échouant dans ma tentative de modification du code précédent ("Valeur(6) As String").
Avec les "boucles", il est largement dépassé et j'en suis le premier désolé.

Bonne fin de journée et un nouveau grand merci pour votre patience.

Nonno 94.
 
Re : Lire un tableau dans une page Internet

Re le forum

Pour extraire le tableau, la méthode la plus simple
Code:
Sub Get_Tableau()
    With Sheets("Feuil1")
        With .QueryTables.Add( _
             Connection:="URL;http://bourse.investir.fr/bourse/potentiels/conseils_srd_az.jsp", _
             Destination:=.Cells(2, 2))
            .BackgroundQuery = True
            .WebSelectionType = xlSpecifiedTables
            .WebTables = "1"
            .TablesOnlyFromHTML = True
            .WebDisableDateRecognition = True
            .Refresh BackgroundQuery:=False
            .SaveData = True
        End With
    End With
End Sub
Sans la mise en forme du tableau
Code:
Sub Get_Tableau()
    With Sheets("Feuil1")
        With .QueryTables.Add( _
             Connection:="URL;http://bourse.investir.fr/bourse/potentiels/conseils_srd_az.jsp", _
             Destination:=.Cells(2, 2))
            .BackgroundQuery = True
            .WebSelectionType = xlSpecifiedTables
            .WebFormatting = xlNone 'xlWebFormattingRTF
            .WebTables = "1"
            .TablesOnlyFromHTML = True
            .WebDisableDateRecognition = True
            .Refresh BackgroundQuery:=False
            .SaveData = True
        End With
    End With
End Sub
Mytå
 
Dernière édition:
Re : Lire un tableau dans une page Internet

Bonjour Myta,🙂

c'est avec plaisir que j'ai lu votre réponse qui permet d'importer un tableau d'une page Internet.
J'ai appris ainsi comment désigner un tableau dans une page.
Ne croyez pas que je ne fais pas d'efforts pour améliorer mes connaissances (très réduites) en vba. Disons simplement que la méthode que j'utilise est très empirique et génère + d'erreurs que de succès !

Je vais me permettre une dernière fois pour clore cette fructueuse discussion (rassurez-vous : vous n' allez pas perdre définitivement le "client pénible" que je ne voudrais pas devenir) de reposer 2 questions qui restent en suspens dans l'autre discussion;

https://www.excel-downloads.com/threads/importer-un-tableau-dune-page-internet.191544/

à savoir :
- l'impossibilité de lire un lien image avec le code que vous m'avez communiqué
- la modification du code avec 2 boucles pour lire un tableau.
Mais essais se sont naturellement révélés infructueux !

Je vous renouvelle mes plus chaleureux remerciements et vous souhaite une bonne journée.

Cordialement.
Nonno 94.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour