Non so a te, ma a me i dati importati sono diversi da quanto visualizzato sulla pagina web
Questo e' quello che vedo:
Questo e' quello che importo:
picture uploadQuesto a conferma che le webquery non sono in grado di gestire appropriatamente pagine generate dinamicamente, tramite script.
Riciclando una delle tante macro per importare da web ti propongo questo codice:
- Codice: Seleziona tutto
Sub Call1()
Sheets("Foglio3").Select '<<< Il foglio su cui si fara' l'importazione
Range("A:X").ClearContents 'NB: Il fofglio SARA' AZZERATO senza preavviso
Range("A:X").NumberFormat = "@" 'Colonne in formato Testo
Call GetTabbbSub(Range("Z1").Value) ' "Chiama" la GetTabbbSub
Range("A:X").WrapText = False
End Sub
Sub GetTabbbSub(ByVal myURL As String)
'Va Chiamata passandogli l'URL da leggere
Set IE = CreateObject("InternetExplorer.Application")
'
With IE
.navigate myURL
.Visible = True
'Stop 'Vedi TESTO
Do While .Busy: DoEvents: Loop 'Attesa not busy
Do While .readyState <> 4: DoEvents: Loop 'Attesa documento
End With
'
myStart = Timer 'attesa addizionale
Do
DoEvents
If Timer > myStart + 1 Or Timer < myStart Then Exit Do
Loop
'Scrive le tabelle SUL FOGLIO ATTIVO
Set myColl = IE.document.getElementsByTagName("TABLE")
For Each myItm In myColl
Cells(I + 1, 1) = "Table# " & ti + 1
ti = ti + 1: I = I + 1
For Each trtr In myItm.Rows
For Each tDtD In trtr.Cells
Cells(I + 1, j + 1) = tDtD.innerText
Cells(I + 1, j + 1).HorizontalAlignment = xlLeft
'Legge hyperlink:
If InStr(1, tDtD.innerHTML, "href", vbTextCompare) > 0 Then
DoEvents: DoEvents
ActiveSheet.Hyperlinks.Add anchor:=Cells(I + 1, j + 1), _
Address:=tDtD.getElementsByTagName("a")(0).href
End If
If j > 0 And Len(Cells(I + 1, j + 1)) > 2 Then cz = 1
j = j + 1
Next tDtD
'Allinea al centro se e' una Intestazione:
If trtr.classname = "js-tournament" Then
Cells(I + 1, 1).HorizontalAlignment = xlCenter
End If
I = I + 1: j = 0
DoEvents
Next trtr
I = I + 1
Next myItm
'
'Chiusura IE
IE.Quit
Set IE = Nothing
End Sub
Va messo in un "Modulo standard" del vba. Poi all'occorrenza devi avviare la Sub Call1, che richiama la Sub GetTabbbSub(ByVal myURL As String).
Questo ti importera' sul foglio selezionato (nel nostro caso " Foglio3", come impostato a inizio di Sub Call1) tutte le tabella presenti sull'url indicato (quello contenuto in Z1 di Foglio3, come indicato al momento della Call GetTabbbSub), da Riga 1 verso il basso
Le celle che hanno un hyperlink lo avranno anche sul foglio Excel
Noterai, in testa alla Sub GetTabbbSub, uno "Stop" al momento "commentato" (e quindi non attivo): se ti interessa interagire con la pagina web prima dell'importazione tabella allora togli l'Apostrofo in prima colonna. In questo modo la macro si fermera' all'apertura della pagina; puoi ora cambiare le scelte (es la data); poi torna sul vba (dove trovi la macro ferma sullo Stop) e premi F5 per completare l'importazione.
Il tutto e' basato sul codice html rilevato "oggi" nella pagina
http://www.betexplorer.com/next/soccer; non si puo' escludere che "domani" il codice cambi rendendo errate le importazioni.
Ciao