[HTML-->VBA] Extraction de données / div elements

Bonjour,

Pour faire bref, je débute en VBA, je ne maîtrise absolument pas le langage HTML et je cherche à développer une macro me permettant d'extraire automatiquement un certain nombre de données à partir d'un site web.

La partie de code HTML qui m'intéresse pour le moment est la suivante :

<table id="playersStatsTable" class="players-stats-table">
        <tbody>
            <td class="overview-year">
                <div>
                2018
                </div>
            </td>
            <td colspan="1">
                <div data-singles="1" data-doubles="0" class="stat-value">
                1
                </div>
                <div>
                Rank 
                </div>
            </td>

Source du code : https://www.atpworldtour.com/en/players/rafael-nadal/n409/overview

Ce que je souhaite obtenir, ce sont les valeurs associées à "data-singles" et à "data-doubles".

Avec ces quelques lignes, j'arrive à un résultat proche de celui que j'aimerais obtenir :

Dim ie As Object
Set ie = CreateObject("InternetExplorer.Application")

ie.Visible = True
ie.navigate "https://www.atpworldtour.com/en/players/rafael-nadal/n409/overview"

Do While ie.Busy
    Application.Wait DateAdd("s", 1, Now)
Loop

Dim HTMLDoc As HTMLDocument
Set HTMLDoc = ie.document

PlayerRank = HTMLDoc.getElementById("playersStatsTable").getElementsByTagName("td")(1).innerHTML

MsgBox PlayerRank

N.B: Je cherche ici à associer la variable "PlayerRank" à la valeur "data-singles".

En effet, ça me permet d'obtenir le message suivant en Message Box :

<div data-singles="1" data-doubles="0" class="stat-value">

1

</div>

<div>

Rank

</div>

Et avec quelques lignes de code supplémentaires, il me serait possible de récupérer les valeurs qui m'intéressent (en l’occurrence, que PlayerRank soit égal à "data-singles"). Mais j'aimerais trouver un moyen plus direct d'obtenir les valeurs que je souhaite. J'ai essayé la chose suivante mais ça ne marche pas et me renvoie une erreur d'exécution (94).

[...]

Dim HTMLDoc As HTMLDocument
Set HTMLDoc = ie.document

PlayerRank = HTMLDoc.getElementById("playersStatsTable").getElementsByTagName("td")(1).getAttribute("data-singles")

MsgBox PlayerRank

En espérant avoir été suffisamment clair. Merci d'avance.

Bonjour,

tu peux aussi faire un split(split(PlayerRank,">")(1),"<")(0)

Rechercher des sujets similaires à "html vba extraction donnees div elements"