Titre du sujet : Re: Regrouper les données Zeturf par myDearFriend! le 28/09/2010 22:05:25
Bonsoir jc24,
Tu trouveras en pièce jointe mon interprétation de ta demande...
En reprenant pour base le fichier réalisé pour ton fil précédent :
Cette fois, le bouton vert permet de récupérer à la fois les Rapports et les Pronos en amont.
Cela dit, j'avoue que j'ai un peu de mal à comprendre ta façon d'aborder la chronologie des évènements... Vouloir récupérer les pronos à postériori (après résultats des courses !), c'est une logique qui m'échappe.
Pour info, j'ai modifié le module de code "ModRapports" comme suit afin d'imbriqué les 2 traitements :
Option Explicit
'---------------------------------------------------------------------------------------
' Auteur : Didier FOURGEOT (myDearFriend!) - www.mdf-xlpages.com
' Date : 28/09/2010
' Sujet : Récup données Web ZEturf.fr
'---------------------------------------------------------------------------------------
Sub TraitementRapportsEtPronos()
Dim F As Worksheet
Dim Plage As Range, R As Range
Dim Lien As String, D As String
Const vURL As String = "http://www.zeturf.fr/fr/resultats/"
Const vURL2 As String = "http://www.zeturf.fr/fr/programme/"
For Each F In Worksheets
With F
If Right(F.Name, 2) = " ®" Then
'Si onglet <> aujourd'hui
D = Replace(.Name, " ®", "")
If DateValue(D) <> Date Then
'Préparer la feuille cible
.Activate
.Columns("K:IV").Delete Shift:=xlToLeft
Application.ScreenUpdating = False
'Récup des données web
Set Plage = .Range(.Cells(4, 1), DernCell.Offset(-1, 0)).SpecialCells(xlCellTypeBlanks)
For Each R In Plage
Lien = R.Offset(0, 1).Text
If InStr(1, Lien, "/") > 0 Then
Application.StatusBar = Lien
RecupRapports vURL & Lien, R.Offset(-2, 10)
RecupPronos vURL2 & Lien, R.Offset(1, 20)
End If
Next R
'mise en forme
.Range("K:N,Q:Q,S:S").Delete Shift:=xlToLeft
.Columns("K:P").EntireColumn.AutoFit
.Range("A1").Select
'Renommer l'onglet (supprimer le tag '®')
.Name = D
Application.ScreenUpdating = True
End If
End If
End With
Next F
Application.StatusBar = False
Beep
End Sub
Sub RecupRapports(vURL As String, R As Range)
With ActiveSheet.QueryTables.Add(Connection:="URL;" & vURL, Destination:=R)
.Name = "LaRequete"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebTables = "4"
.WebFormatting = xlWebFormattingRTF
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
.Delete
End With
'Efface l'entête
R.Resize(3, 9).ClearContents
End Sub
Sub RecupPronos(vURL As String, R As Range)
With ActiveSheet.QueryTables.Add(Connection:="URL;" & vURL, Destination:=R)
.Name = "LaRequete"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebTables = "5"
.WebFormatting = xlWebFormattingRTF
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
.Delete
End With
End Sub
J'espère que ça pourra te convenir.
Cordialement,
Nb: à l'attention des visiteurs intéressés : le classeur en pièce jointe exploite des requêtes web via le navigateur Internet Explorer. Ceci explique notamment pourquoi il ne fonctionne pas sous environnement Mac.
|