Ciao Anthony e grazie per la risposta così tempestiva.
Ecco il codice:
- Codice: Seleziona tutto
Sub macro_semplice()
'
' macro_semplice Macro
'
'
Dim PauseTime, Start
inizio:
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;http://192.168.1.1/statisticsAG.html", Destination:=Range("$A$1"))
.Name = "statisticsAG"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlSpecifiedTables
.WebFormatting = xlWebFormattingAll
.WebTables = "6"
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = True
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
PauseTime = 30
Start = Timer
Do While Timer < Start + PauseTime
DoEvents
Loop
GoTo inizio
End Sub
Se può essere d'aiuto, la sorgente dei dati è la pagina di stato del router Alice Gate Voip 2 Plus, in particolare la tabella 'statistiche connessione' sotto la voce 'statistiche'.
Questa macro, utilizzando una query web, estrae la tabella ogni 30 secondi affiancandola alle tabelle prelevate nelle rilevazioni precedenti (nel dettaglio la tabella più recente rimane sempre sul lato sinistro del foglio a partire dalla cella A1 mentre via via scalano alla sua destra le tabelle subito precedenti).
Ciò che vorrei ottenere è un accodamento verso il basso ovvero che le tabelle via via estrapolate vengano stampate al di sotto delle precedenti lasciando tra l'una e l'altra due o tre righe di spazio (se per semplicità di programmazione fosse più comodo lasciare in alto la tabella più recente e accodargli le vecchie andrebbe benissimo comunque!).
E' importante che ad ogni tabella rilevata corrispondano data e ora in cui è avvenuta la cattura anche dopo che il foglio viene aggiornato; a tal proposito l'unica cosa che sono riuscito a fare è stata aggiungere una cella data/ora contenente il valore della funzione ADESSO() ma evidentemente ad ogni ciclo eseguito dalla macro tutte le celle data/ora presenti nel foglio venivano riportate al valore attuale.
Rimango in attesa.
Ciao