Importation Données Web et tri après importation

ByAlex

XLDnaute Nouveau
Bonjour à tous,

je n'ai pas pour Habitude d'utiliser Excel de façons "avancé" et j'ai quelques lacunes, donc je cherche des solutions.

Voila, j'ai découvert la fonction " Obtenir des données à partir du Web ". jusque là ok. je prend ce que je souhaite etc.. mais lors de l'importation je me retrouve avec 2 pourcentages différents dans une même colonne.

Comment pouvoir remettre un pourcentage par colonnes ? au lieu de retrouver les deux pourcentages dans les 2 colonnes... si c'est possible

dans mon exemple ça correspond aux colonnes D et E fraichement importer et sans retouche ( site en Question : Tennis )

( les lignes inutiles pour moi je les supprimerai manuellement, sauf si une technique existe aussi .. bien entendu !

rendu site :

table1.PNG


rendu importation :

Capture&.PNG


Alors ensuite vous allez me demander pourquoi vouloir prendre ces données sur ce site ? et bien tout simplement je souhaite enregistrer les résultats pour pouvoir sortir des % de réussites selon les stats que ce Monsieur trouve avec son algo.

la suite logique sera de trouver des données pour croiser son tableau avec les résultats du match simplifié "victoire" ou "défaite"

merci beaucoup !!

PS : ce résultat sera pour une utilisation personnelle...
 

patricktoulon

XLDnaute Barbatruc
BONJOUR
juste pour le fun en passant
VB:
Sub test()
    url = "https://www.tennisbrain.com/"
    t = getHTMLtable(url)
End Sub

Function getHTMLtable(url)
    Dim TRS, TDS, DIVS, TD, TD2
    With CreateObject("microsoft.xmlhttp")
        .Open "get", url, False
        .send
        code = .responsetext
    End With
    With CreateObject("htmlfile")
        .body.innerhtml = code
        .body.innerhtml = .getelementsbytagname("TABLE")(1).outerhtml
        Set TRS = .getelementsbytagname("TR")
        For Each elem In TRS
            If elem.innerhtml Like "*Profile*" Then elem.Parentelement.RemoveChild (elem)

            'restructuration et replacement de la ligne des "%"
            Set DIVS = elem.getelementsbytagname("DIV")
            If DIVS.Length = 2 Then
                Set TD = .createelement("TD"): TD.innerhtml = DIVS(0).innertext:
                Set TD2 = .createelement("TD"): TD2.innerhtml = DIVS(1).innertext
                For Each childs In elem.ChildNodes: elem.RemoveChild (childs): Next
                elem.appendchild (TD): elem.appendchild (TD2)
            End If
        Next
        'memorisation dans le clipborad au format html
        .parentwindow.clipboardData.setData "Text", "<html>" & .body.innerhtml & "</html>"
    End With
    With ActiveSheet: .UsedRange.Clear: .Cells(1).Select: .Paste: .UsedRange.HorizontalAlignment = xlCenter: End With
End Function
Capture.JPG
 

soan

XLDnaute Barbatruc
Bonjour ByAlex, le fil,

Tu as écrit : « :oops: niveau supérieur pour moi ! mais j'adore ! Merci ;) »

Alors pour mieux exprimer ta joie, au bas du post de patricktoulon,
tu peux cliquer sur « J'aime » et choisir le 2ème smiley « J'adore ».

(c'est juste une petite remarque en passant, hein ?)

soan
 

Statistiques des forums

Discussions
294 039
Messages
1 935 786
Membres
187 447
dernier inscrit
Harvedo