Lo puoi fare con delle webquery, di cui vai a modificare la "Connection" per allinearla al pes_id.
La webquery ti porta su foglio tutte le informazioni contenute sul sito pesdb.net, da queste attingi le poche informazioni che ti servono; devi vedere tu se il layout e' fisso (quindi sai che in una certa cella trovi sempre l'eta') o se devi fare un Find di un parametro per trovarne la posizione.
La query per il sito pesdb.net la crei su Foglio2 (che deve essere dedicato solo a questa funzione) con questa macro:
- Codice: Seleziona tutto
Sub CreaWQPesDB()
'Crea Query, basta lanciarla solo una volta
'
'Cancella eventuali Query gia' presenti:
Sheets("Foglio2").Select
For Each wq In ActiveSheet.QueryTables
wq.Delete
Next wq
'Crea nuova query:
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://pesdb.net/pes2017/?id=44383", Destination:=Range("$B$2"))
.Name = "QueryAnth"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingNone
.WebTables = "1"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
Range("B3").Select
End Sub
Poi per modificare la Connection potrai usare questo codice:
- Codice: Seleziona tutto
ccon = Sheets("Foglio2").Range("B3").QueryTable.Connection
cid = Mid(ccon, InStr(1, ccon, "=", vbTextCompare) + 1)
Sheets("Foglio2").Range("B3").QueryTable.Connection = Replace(ccon, cid, Selection.Value, , , vbTextCompare)
Sheets("Foglio2").Range("B3").QueryTable.Refresh BackgroundQuery:=False
'istruzioni per portare i dati dalla tabella al Foglio1
Questa presuppone che il pesdb ID sia nella cella "Attiva"
Per la query sull'altro sito il ragionamento e' analogo: ti crei una query in Foglio3, modifichi la Connection con un ragionamento analogo a quello fatto per pesdb.net, porti i dati che ti interessano su Foglio1.
Come aggiornare i tuoi elenchi dipende dal tuo processo; probabilmente vorrai lanciare l'aggiornamento con un pulsante, ma tieni presente che ogni query durera' "alcuni secondi", quindi se devi aggiornare 100 giocatori ti serviranno 100 volte "alcuni secondi".
La macro complessiva e' solo un gioco di tempo e di pazienza.
Ciao