Import plusieurs tableaux WEB dans Excel

Bonjour,

Je suis débutant en programmation excel/VBA et j'aimerai importer plusieurs tableaux issus du WEB dans un fichier Excel.

Le but est de compiler des stats sur le foot (matchs à venir, classement, classement domicile, classement extérieur et statistiques du championnat).

J'ai déjà créé un fichier avec des requêtes d'importation : 5 par championnat (1 pour chaque stats) mais cela prend beaucoup de temps à actualiser, voir même fait planter excel. En effet j'ai fait le test pour 20 championnats/100 requêtes et Excel s'est arrêté.

La seule solution que j'ai trouvé serait de créer un fichier excel pour 15 championnats, mais ayant 300 championnats à analyser il faudrait que je créé 20 fichiers différents et que je les actualise 1 par 1.

Existe-t-il une solution (macro ou autre) pour importer les données en 1 fois sans faire planter excel?

Je vous mets le fichier que j'ai créé avec un exemple (1 championnat / 5 requêtes)

13test.xlsx (31.18 Ko)

Merci d'avance pour votre aide!!

Bonjour,

PowerQuery est un outil génial ... un peu lourd quand même !

Il m'arrive donc assez souvent d'utiliser une solution macro, et qui s'avère plus rapide : elle exploite en direct la page internet (.responseText) et passe par le presse-papier qui permet de conserver la présentation en tableau avec ses mises en forme.

Un exemple sur une de tes URL. Il faudrait reprendre la macro sur la collection des 300URLs.

Sub Maj()
Dim URL$, obj As New DataObject
MsgBox "interro web ..."
On Error Resume Next
    DoEvents
    URL = [www]
    On Error Resume Next
    With CreateObject("MSXML2.XMLHTTP")
        .Open "GET", URL, False
        .Send
        If .Status = 200 Then
            For i = 1 To UBound(Split(.responseText, "<table"))
                txt = "<table" & Split(Split(.responseText, "<table")(i), "</table>")(0) & "</table>"
                obj.SetText txt
                obj.PutInClipboard
                ActiveWorkbook.Sheets.Add After:=Worksheets(Worksheets.Count)
                ActiveSheet.Paste
                ActiveSheet.Name = "Table #" & i
            Next
        End If
    End With
MsgBox "Fin !"
End Sub

Merci pour cette réponse rapide

Cela fonctionne effectivement très bien, existe-t-il un moyen pour automatiser les 300 URL ou faut-il à chaque fois changer l'URL en A1 sur la Feuille? (désolé je suis vraiment débutant...)

Donne moi une liste d'URL et j'adapterai le code.

Il y aura un tableau par onglet pour simplifier le code au début ...

PowerQuery est un outil génial ... un peu lourd quand même !

Il m'arrive donc assez souvent d'utiliser une solution macro, et qui s'avère plus rapide ...

J'approuve des deux mains!

Pierre

Donne moi une liste d'URL et j'adapterai le code.

Il y aura un tableau par onglet pour simplifier le code au début ...

Super merci, je fais le fichier avec les URLs et reviens vers toi.

Merci en tout cas c'est sympa

Hello Steelson!

J'ai mis dans un fichier les URLs pour les imports.

À noter que sur chaque URL je n'ai besoin que du 1er tableau (donc "Table 0"), cela évite plusieurs tableaux par URL.

Si tu as des questions n'hésite pas, et si la quantité de travail est trop importante tu peux également m'expliquer le cheminement pour créer la macro...

Merci pour ton aide et bon week-end

13urls.xlsx (34.89 Ko)

ok

je regarde cet apm

mais je te donnerai aussi la marche à suivre ensuite, je préfère tester avant pour ne pas dire que des conneries !

Super merci bcp!

J'ai chargé la première table des premières URL

Dis moi si c'est bien cela ?

29betexplorer.xlsm (54.09 Ko)

C'est exactement ça! Vraiment super!!!

En fait je viens de voir... Il suffit de coller les URLs et il va me les chercher??

Pouahh vraiment vraiment génial, merci mille fois!!

Donc je viens de faire l'import, pour les 1445 URLs il a fallu 9 minutes... Bref je suis méga impressionné...

Merci beaucoup beaucoup en tout cas, tu sais pas le nombre d'heures que cela va me faire gagner!

A bientôt et bon week-end

Merci pour ce retour

Merci pour ce retour

Bonjour Steelson!

Je reviens vers toi concernant la Macro que tu m'avais gentiment créée pour extraire des données du site Betexplorer.

J'aurais une autre question : lors de l'import dans le fichier excel les données sont en format texte. Est-il possible d'extraire également les lients HTML vers Excel?

Je m'explique : exemple sur le site quand je clique sur le match PSG-Nantes je tombe sur la page du match en question, mais lors de l'export vers excel ce lien devient du texte donc je ne peux plus suivre le lien.

Je n'ai aucune idée si cela est possible mais y a-t-il un moyen pour que la macro soit en mesure d'importer le lien également, de sorte à ce que je puisse depuis mon fichier excel suivre les liens hypertexte?

Merci d'avance pour ta réponse.

Benoit

ok, je vais voir cela demain matin

exemple sur le site quand je clique sur le match PSG-Nantes je tombe sur la page du match en question, mais lors de l'export vers excel ce lien devient du texte donc je ne peux plus suivre le lien.

Pourrais-tu me redonner le fichier avec juste cette page ?

Merci pour ta réponse rapide, ci-joint,le fichier.

Comme tu peux le voir en suivant le lien sur le net "https://www.betexplorer.com/soccer/south-africa/premier-league/", si tu cliques sur le 1er match "Baroka - Maritzburg Utd", cela te ramène vers la fiche du match.

Par contre après extraction vers excel si je clique sur le match en question le lien n'est pas actif (ce qui est sans doute normal car excel n'extrait que du texte...)

Autre remarque sur "https://www.betexplorer.com/soccer/south-africa/premier-league/", tu peux voir que les cotes de matchs ne sont pas extraites non plus (1 X 2).

après extraction vers excel si je clique sur le match en question le lien n'est pas actif (ce qui est sans doute normal car excel n'extrait que du texte...)

J'ai un lien actif ... mais incomplet, car dans la page html c'est un lien relatif vers une page dépendante de https://www.betexplorer.com , il faudrait ajouter ce préfixe sur le lien, je vais voir ce que je peux faire sans trop compliquer le bazar.

capture d ecran 727 capture d ecran 728

Autre remarque sur "https://www.betexplorer.com/soccer/south-africa/premier-league/", tu peux voir que les cotes de matchs ne sont pas extraites non plus (1 X 2).

Ce n'est aboslument pas étonnant, tous les sites d'enchères ou de paris préservent jalousement les cotes pour éviter les aspirateurs comme nous tentons de le faire.

Je vais regarder cela aussi sans garantie de succès !

Voici pour les cotes de matches, j'ai leurré le système (au passage, il y a juste un petit décalage de colonne)

et voici aussi pour les liens .... eurêka !

Rechercher des sujets similaires à "import tableaux web"