Come appassionato di F1 e di excel ho scaricato il tuo file; non ho fatto grandi prove, ma ho solo guardato la segnalazione di raimea relativa agli errori "La web query non ha restituito dati. etc etc".
La mia analisi e' la seguente:
1) Il problema e' legato all' aggiornamento dei risultati delle query.
2) Nei fogli c' e' una gran quantita' di intervalli a cui e' associata una query (sono 93 + 150 + 88)
3) Questo perche' lanci le query con
ActiveSheet.QueryTables.Add, che in realta "aggiunge" una query
4) estraendo i source delle query ho trovato che vanno in errore
A) su foglio GP-Pilota-Risultati, 6 query che fanno capo tutte alla destinazione
http://www.formula1.com/results/season/2010/831, cioe' quelle collegate ai nomi 831_5, 831_4, 831_3, 831, 831_1 e 831_2
B) Idem su foglio GP-Selezionato (source URL;http://www.formula1.com/results/season/2010/831), che si trova nei nomi 831_2, 831_1, 831
C) Idem sul foglio Query_Web_Appoggio, nei nomi 831, 831_1, 831_2
Basterebbe eliminare dai tre fogli gli intervalli con questi "nomi", o non attivare l' aggiornamento automatico, per eliminare anche il problema.
Tuttavia per evitare di creare tutte queste query e relativi intervalli (indipendentemente dal link errato che produce gli errori), il mio suggerimento e'
-crea i vari fogli con la unica QueryTable che serve, anche a mano
-poi come codice puoi usare qualcosa come
- Codice: Seleziona tutto
ActiveSheet.QueryTables(1).Connection ="URL;http://www.formula1.com/results/season/2010/" & Num_Pagina, Destination:=Range("A1"))
ActiveSheet.QueryTables(1).refresh
Puoi vedere quante query sono inserite all' interno dei vari fogli con qualcosa come
- Codice: Seleziona tutto
MsgBox ActiveSheet.QueryTables.Count
e sue varianti.
Spero che quanto sopra ti sia di qualche utilita'.
Ciao.