Titre du sujet : Re: Extraction de données sur plusieurs pages web. par myDearFriend! le 13/05/2009 00:33:38
Bonsoir Icedarts, le Forum,
Tu trouveras en pièce jointe une tentative de réponse à ta demande.
J'ai utilisé le code suivant :
Option Explicit
'----------------------------------------------------------------------------
' Auteur : Didier FOURGEOT (myDearFriend!) - www.mdf-xlpages.com
'----------------------------------------------------------------------------
Public EnCours As Boolean 'Flag pour contrôle de chargement page Web
Sub Traitement()
Dim TabTemp As Variant
Dim L As Long, L2 As Long, Lign As Long
Dim Col As Byte
'On efface les données de la Feuil2
With Sheets("Feuil2")
.Range(.Cells(2, 1), .Cells(.Rows.Count, 12)).Delete
End With
'Traitement
With Sheets("Feuil1")
'Pour chaque lien
For L = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
'On affiche la page Web dans le WebBrowser et attend la fin de chargement
EnCours = True
.WebBrowser1.Navigate .Cells(L, 1).Text
'Le flag "EnCours" est remis à False dans Feuil1 > WebBrowser1_DocumentComplete()
Do
DoEvents
Loop Until EnCours = False
'
'On récupére les données de chaque tableau
TabTemp = Split(.WebBrowser1.Document.Body.InnerText(), vbCrLf)
Col = 0
With Sheets("Feuil2")
'Prochaine ligne "résultat"
Lign = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(Lign, 9) = Mid(TabTemp(0), 62) 'Opérateur
.Cells(Lign, 10) = Mid(TabTemp(2), 18) 'Groupe
'Données du tableau
For L2 = 4 To UBound(TabTemp)
Col = Col + 1
If Col > 8 Then
Col = 1
Lign = Lign + 1
End If
.Cells(Lign, Col).Value = TabTemp(L2)
Next L2
End With
Next L
End With
MsgBox "Traitement terminé !"
End Sub
En espérant t'avoir aidé.
Cordialement,
|