Visto che la struttura dati e' diversa da quella della discussione a cui fai riferimento, allora l'area da copiare dal foglio della Query al foglio di accumulo dei risultati deve essere calcolata con regole appropriate, e idem per l'identificazione dell'ultima pagina.
Il risultato dovrebbe essere questa macro:
- Codice: Seleziona tutto
Sub getTables()
'versione http://www.pc-facile.com/forum/viewtopic.php?f=26&t=100356&p=639363#p639363
Dim Dest As String, myRoot As String, I As Long, myRan As Range
'
Dest = "Foglio2" '<< Il foglio dove sara' creato l' elenco
With Range("A1").QueryTable
For I = 1 To 5000
.Connection = "URL;http://cercalatuascuola.istruzione.it/cercalatuascuola/ricerca/risultati?page=" & I & "&codiceRegione=&codiceOrdine=&checkStatale=S&radioBiennioTriennio=Biennio&denominazione=&codMecc=&tipoRicerca=AVANZATA&idform=result-453463"
.Refresh BackgroundQuery:=False
If Cells(Rows.Count, "B").End(xlUp) = Sheets(Dest).Cells(Rows.Count, "B").End(xlUp) Then Exit For
Set myRan = Range(Cells(Rows.Count, "C").End(xlUp).Offset(0, -2), Range("E1").End(xlDown).Offset(1, 0))
If myRan.Rows.Count <= 10 And myRan.Rows.Count > 0 Then
myRan.Copy Destination:=Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Else
Exit For
End If
DoEvents
[J1] = I
[K1] = Sheets(Dest).Cells(Rows.Count, 1).End(xlUp).Row
Next I
Debug.Print I
End With
MsgBox ("Completato...")
'
End Sub
Quindi:
-crea un file con 2 fogli di lavoro
-sul primo (Foglio1) inserisci una webquery al primo url che hai indicato; fai in modo che l'area dati della query parta da A1
-il secondo foglio (Foglio2) sara' quello di accumulo; se il nome e' diverso da Foglio2 allora modifica la riga di codice marcata <<<
Inserisci la macro in un Modulo standard del vba, ad esempio Modulo1. Per questo, dopo aver creato il file:
-partendo da Excel premi Alt-F11 per aprire l'editor delle macro
-Menu /Inserisci /Modulo
-Copia il codice e incollalo nel frame dx del modulo appena creato
Personalizza la riga marcata <<< come gia' detto.
Poi torna su Excel, seleziona Foglio1 (quello con la query) e lancia la Sub getTables:
-premi Alt-F8
-seleziona getTables dall'elenco di macro disponibili
-premi Esegui
Ci vorra' il suo tempo, ma piano piano dovrebbe andare avanti; per consentirti di conoscere il progresso, in J1 e K1 saranno visualizzati "l'Indice" della pagina e l'ultima riga compilata sul foglio di accumulo. Non demoralizzarti... Comunque magari per prova usa un ciclo For I= 1 to 20, poi (se funziona) il lavoro grosso magari lo fai fare di notte.
Il foglio di accumulo non viene azzerato dalla macro; questo ti consentira', se necessario, di procedere per lotti; es un primo ciclo For I= 1 to 1000; poi un secondo For I=1001 to 2000, e cosi' via.
Se invece parti daccapo allora accertati che il foglio di destinazione sia vuoto all'inizio.
Ciao