bonjour a tous
dans le but d'optimiser mon code vba
je cherche a remplacer mes querytables xlEntirePage par autres choses de plus rapide
lorsqu'il y a qu' une "table" a importer je me débrouille ( Merci a PatrickT. pour son outils iegetelementid ? ) tres pratique & simple
sauf que voila j'ai besoin d'autres infos " text " qui ne sont pas dans des "tables "
et plus que du sur-mesure je préfère du prêt a porter , c'est facilement modifiable et exploitable sur d'autres pages
donc je me suis dit je vais importer la page entière , ça fonctionne
il me suffira de faire quelques "split " pour exploiter mes données ensuite
Peux on importer la page entière et exploiter la table par la même occasion ( en 1 fois ) ?
j'ai fais quelques essais mais sans grande réussite
1er code pour importer text de la page - 2 imie code pour importer une table + essai avec .body.innerText sans reussite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 Dim IE As InternetExplorer Dim maPageHtml As HTMLDocument Set IE = CreateObject("InternetExplorer.Application") IE.Visible = False IE.navigate "http://google.com" Do Until IE.readyState = READYSTATE_COMPLETE DoEvents Loop Text = IE.document.body.innerText
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 Sub testdt() Columns("A:l").Clear Dim ReQ As Object, UrL As String UrL = "http://www.geny.com/partants-pmu/2015-05-19-longchamp-pmu-prix-des-gobelins_c714591" Set ReQ = CreateObject("microsoft.xmlhttp") ReQ.Open "POST", UrL, False ReQ.setRequestHeader "Accept", "text/html, application/xhtml+xml, */*" ReQ.setRequestHeader "Accept-Language", "fr-FR" ReQ.setRequestHeader "User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)" ReQ.setRequestHeader "Accept-Encoding", "gzip, deflate" ReQ.setRequestHeader "Host", "www.geny.com" ReQ.setRequestHeader "DNT", 1 ReQ.setRequestHeader "Connection", "Keep - Alive" ReQ.setRequestHeader "Cookie", " JSESSIONID=3E554B80B1ABBC36A2C53EC91C219C77.raoul_1;" ReQ.send 'MsgBox ReQ.responsetext Set fauxdoc = CreateObject("htmlfile") With fauxdoc '''body.innerText = ReQ.responsetext ??? .body.innerhtml = ReQ.responsetext Set grouptable = .getelementsbytagname("TABLE") For i = 0 To grouptable.Length - 1 If grouptable(i).ParentNode.ID = "dt_partants" Then Set matable = grouptable(i) Next For Each elem In matable.all If elem.tagname = "TD" Then elem.innerhtml = elem.innerText Next faire = .ParentWindow.clipboardData.SetData("text", matable.outerhtml) With Sheets(1) Set cel = .Cells(Rows.Count, 1).End(xlUp).Offset(2, 0) cel.Select .Paste: End With faire = .ParentWindow.clipboardData.ClearData("text") End With End Sub
Partager