Import données web

druchmoain

XLDnaute Junior
Hello le forum,

bonjour, j'aurai besoin d'importer une page web,

et de développer les liens qu'elle contient,

pour faire un tableau avec ses données.

je me débrouille avec excel 2010, mais je suis incompétent en programmation VBA et macros,

merci d'avance de vous pencher sur cette énigme (du moins pour moi) :p
 

Pièces jointes

  • ComparBookM.xlsm
    27.4 KB · Affichages: 81

pijaku

XLDnaute Occasionnel
Re : Import données web

Après un coup d'oeil rapide, essaie ceci DANS UN NOUVEAU CLASSEUR possédant une feuille Feuil1 et une feuille Feuil2 :
J'insiste sur le nouveau classeur car cette macro efface toutes les cellules des 2 feuilles!!!
VB:
 Option Explicit

Sub importer()
Dim LgDep As Integer, LgFin As Integer, Trouve As Range, i As Integer
Dim Lien As String, Lign As Long

Sheets("Feuil1").Cells.Clear
With Sheets("Feuil1").QueryTables.Add(Connection:="URL;http://www.cotecompare.com/courses-hippiques/2012/08/19/programme.asp" _
    , Destination:=Sheets("Feuil1").Range("$A$1"))
    .Name = ""
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = False
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = False
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .WebSelectionType = xlEntirePage
    .WebFormatting = xlWebFormattingAll
    .WebPreFormattedTextToColumns = True
    .WebConsecutiveDelimitersAsOne = True
    .WebSingleBlockTextImport = False
    .WebDisableDateRecognition = False
    .WebDisableRedirections = False
    .Refresh BackgroundQuery:=False
End With
'--------Petite mise en page
    Columns("A:A").ColumnWidth = 9.57
    Columns("B:B").ColumnWidth = 26.86
    Rows("1:1").EntireRow.AutoFit
    Rows("3:3").EntireRow.AutoFit
    Rows("8:8").EntireRow.AutoFit
    Rows("9:9").EntireRow.AutoFit
    Rows("10:10").EntireRow.AutoFit
    Rows("11:11").EntireRow.AutoFit
With Columns("C:C")
    Set Trouve = .Cells.Find("Course")
    If Trouve Is Nothing Then
        MsgBox "Erreur, le mot course ne figure pas colonne C. Merci de vérifier"
    Else
        LgDep = Trouve.Row
        Set Trouve = .Cells.FindNext(Trouve)
        If Trouve Is Nothing Then
            MsgBox "Erreur, le mot course ne figure qu'une fois colonne C. Merci de vérifier"
        Else
            If Trouve.Row > LgDep Then LgFin = Trouve.Row
        End If
    End If
End With
Set Trouve = Nothing
Sheets("Feuil2").Cells.Clear
Application.ScreenUpdating = False
For i = LgDep + 1 To LgFin - 1
    Lien = Range("C" & i).Hyperlinks(1).Address
    With Sheets("Feuil2").QueryTables.Add(Connection:="URL;" & Lien & "" _
    , Destination:=Sheets("Feuil2").Range("A" & Rows.Count).End(xlUp).Offset(1, 0))
        .Name = ""
        .FieldNames = True
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = False
        .SaveData = True
        .AdjustColumnWidth = True
        .RefreshPeriod = 0
        .WebSelectionType = xlEntirePage
        .WebFormatting = xlWebFormattingAll
        .WebPreFormattedTextToColumns = True
        .WebConsecutiveDelimitersAsOne = True
        .WebSingleBlockTextImport = False
        .WebDisableDateRecognition = False
        .WebDisableRedirections = False
        .Refresh BackgroundQuery:=False
    End With
Next
Application.ScreenUpdating = True
End Sub
 

druchmoain

XLDnaute Junior
Re : Import données web

C'est très fort ça alors, merci Pijaku,

cela marche fort bien,

un petit plus , peut-etre ?

pour changer la date, pourrais tu , mettre (je connais pas le terme exact),

un endroit ou je puisse mettre la date désirée ?

sinon c'est nickel (j'ai pas trop testé, non plus),
mais c'est ce que je voulais.

Milles mercis ;)
 

druchmoain

XLDnaute Junior
Re : Import données web

re pijaku


Oups ça marche plus en changeant la date dans la macro

message erreur" trouve pas "course" dans la colonne C !!!!

pourtant elle s'y trouve !

je regarde mais suis vraiment novice en Macro
:eek:

Après relance cela fonctionne nickel , j'ai testé 5 journées,
sans soucis.
 
Dernière édition:

druchmoain

XLDnaute Junior
Re : Import données web

Merci PIJAKU

Béta Test 3 LOL

il fallait lancer la macro en feuille1 apparemment,
mais pour le 20/08 elle arrete son execution à la deuxieme course.

à bientôt pour d'autres test

si tu as le temps :D


Après relance cela fonctionne nickel , j'ai testé 5 journées,
sans soucis.
 
Dernière édition:

JBARBE

XLDnaute Barbatruc
Re : Import données web

Bonjour,

Je tiens à félicité PIJAKU pour cette macro qui a dû demandé beaucoup de travail !

Je me suis permis d'ajouter une modif avec une feuille " Acceuil " afin d'ajouter une date au format obligatoire " aaaa/mm/jj

suite à la demande de druchmoain !

A+
 

Pièces jointes

  • Turf_Compare_cote.xlsm
    221.1 KB · Affichages: 177

druchmoain

XLDnaute Junior
Re : Import données web

Merci Pijaku et JBARBE
JBARBE ton complément fonctionne bien aussi.

Testé plusieurs courses,
ai noté , une course au hasard le 16/01/2012,

18 courses ont étés traités sur les 33 courses totales,
arret à la ligne 1516 en Feuil2.

ai essayé de touché
For i = LgDep + 1 To LgFin - 1

dans succès,

je continue les tests
 

druchmoain

XLDnaute Junior
Re : Import données web

en adaptatant la macro de Pikaju,

j'essaie d'avoir les arrivées et rapports sur genyCourses

pour compléter le fichier précédent,

mais j'obtient une erreur "Lien = Range("A" & i).Hyperlinks(1).Address",

si quelqu'un pouvait se pencher dessus.

Merci


Je n'est pas réussi par cette macro,

j'ai supprimé le fichier d'avant
et vous donne celui-ci à cogité,

j'ai réussi a recupérer les liens des rapports des courses,
en modifiant la macro du site
Créer une macro pour importer des données d'un site Web avec Excel

maintenant que j'ai tous ces liens,

j'aurais aimé avoir une autre macro, pour copier le contenu des liens,
l'un en dessous de l'autre,
dans une autre page,

à charge à moi par formule de dépatouiller le reste pour
récupérer les arrivée et rapports,

Merci d'avance de faire évolué " la bête" .
 

Pièces jointes

  • importation_web-99.xlsm
    40.6 KB · Affichages: 156
Dernière édition:

druchmoain

XLDnaute Junior
Re : Import données web

Personne n'a une idée, de la marche à suivre,

par le passé j'avais déjà fait des demandes dans ce sens,

mais j'avoue que je n'y arrive toujours pas seul,

ce n'est par manque d'essayer des heures durant !

Mais mettre des formules dans des tableaux et programmer,

la différence est énorme.

Merci encore, de vouloir m'accorder un peu de temps.
 

JBARBE

XLDnaute Barbatruc

druchmoain

XLDnaute Junior
Re : Import données web

Je pense que ma demande ne doit pas etre trop complexe pour quelqu'un qui connait un peu le VBA,

j'ai sans doute mal formulé ma demande,

en fait dans le xls ci-dessus, j'ai recupés les liens qui m'intéressent,

chaque lien ouvrant une nouvelle page (page des rapports de la course suivante),

,ce que je voudrais c'est afficher cette page dans la feuille ex: "RAPPORTS" ,

et que s'il y a 10 ou 50 liens,

chaque nouvelle page s'inscrive dans cette feuiile "RAPPORTS",

sous la course précédente.

Afin d'avoir la feuiile "RAPPORTS" , de bas en haut,

rapports 1ere course
rapports 2eme course
rapports 3eme course
4ème
5èmè
....
....
...


Merci encore d'essayer de comprendre mon charabia . :p
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 246
Membres
103 498
dernier inscrit
FAHDE