1 pièce(s) jointe(s)
Requete Web HTML pour récupérer les données dans Excel
Bonjour,
Je n’arrive pas à recupérer le body d’une page web dans une feuille excel.
Comme vu avec PatrickToulon, j’ai essayé d’adapter les 2 solutions de code qu’il me proposa :
la 1ere avec internet explorer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| Sub test()
Dim IE, URL, code, elem
URL = "http://evpt-webprod.eu.airbus.corp/E760/displaySchedule.php?day=0"
'URL = "https://en.wikipedia.org/wiki/2016%E2%80%9317_Ligue_1"
Set IE = CreateObject("internetexplorer.application")
IE.navigate URL: IE.Visible = True
Do: DoEvents: Loop While IE.readyState <> 4
With IE.document
code = .getElementsByClassName(" gridbox gridbox_dhx_web isIE")(0).outerHTML
End With
IE.Quit
With CreateObject("htmlfile")
.body.innerHTML = code
For Each elem In .all
If elem.tagName = "TD" Then elem.innerHTML = elem.innerText
Next
If .parentWindow.clipboardData.setData("text", .body.innerHTML) Then
With Sheets(1): Cells.Clear: .Cells(1, 1).Select: .Paste: End With
.parentWindow.clipboardData.clearData ("text")
End If
End With
End Sub |
Probleme : le lien URL = http://evpt-webprod.eu.airbus.corp/E...dule.php?day=0 me génère cette erreur :
Erreur d’exécution ‘2147417848 (80010108)’ :
Erreur automation
L’objet invoqué s’est déconnecté de ses clients
la 2nd solution avec une requête
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| Sub test2()
Dim ReQ, URL, code, elem
URL = "http://evpt-webprod.eu.airbus.corp/E760/displaySchedule.php?day=0"
Set ReQ = CreateObject("microsoft.xmlhttp")
ReQ.Open "POST", URL, False
ReQ.send
With CreateObject("htmlfile")
.body.innerHTML = ReQ.responseText
'Range("A12") = ReQ.responseText
code = .getElementsByClassName(" gridbox gridbox_dhx_web isIE")(0).getElementById("gridboxOPS").outerHTML
code = .getElementsByClassName(" gridbox gridbox_dhx_web isIE")(0). outerHTML
code = .getElementsByClassName("gridbox gridbox_dhx_web isIE")(0). outerHTML
.body.innerHTML = code
For Each elem In .all
If elem.tagName = "TD" Then elem.innerHTML = elem.innerText
Next
If .parentWindow.clipboardData.setData("text", .body.innerHTML) Then
With Sheets("Feuil1"): Cells.Clear: .Cells(1, 1).Select: .Paste: End With
.parentWindow.clipboardData.clearData ("text")
End If
End With
End Sub |
Probleme :
Le message suivant s’ affiche à cette ligne de code:
code = .getElementsByClassName(" gridbox gridbox_dhx_web isIE")(0).getElementById("gridboxOPS").outerHTML
Message errreur :
Erreur d’exécution ‘438’ :
Propriété ou méthode non gérée par cet objet.
J’ai beau essayé plusieurs code ca ne fonctionne pas .
La ligne HTML que je souhaite récupérer est celle ci:
<div class=" gridbox gridbox_dhx_web isIE" id="gridboxOPS" style="width: 1915px; height: 595px; cursor: default;">
Vous avez plus de précision dans la pj
Merci d'avance pour votre temps
Bonne journée
Jerome