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
Probleme : le lien URL = http://evpt-webprod.eu.airbus.corp/E...dule.php?day=0 me génère cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Probleme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Partager