PDA

Visualizza versione completa : aggiornare il foglio excel ogni secondo


xing83
21-10-2006, 09.02.34
Salve, ho la necessita di utilizzare dei dati in excel che devono essere aggiornati ogni secondo, come faccio a fargli fare il refresh del foglio in automatico del foglio invece di premere F9?

LoryOne
21-10-2006, 12.13.06
Devi necessarimente fare uso di macro ed API se vuoi un codice elegante come questo:
1 - Prima di tutto inserisci un modulo ed all'interno immetti queste poche righe:

--------------------------------------------
Private Declare Function SetTimer Lib "user32" _
(ByVal hwnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32" _
(ByVal hwnd As Long, _
ByVal nIDEvent As Long) As Long

Public Sub VBA_TimerProc(ByVal hwnd As Long, ByVal uint1 As Long, _
ByVal nEventId As Long, ByVal dwParam As Long)

'Immetti qui dentro il codice VBA che ti serve eseguire ogni lTimer millisecondi

End Sub

Public Sub AvviaTimer(ByVal lTimer As Long)
'lTimer espresso in millisecondi

SetTimer ThisWorkbook.Application.hwnd, 1, lTimer, AddressOf VBA_TimerProc
End Sub

Public Sub InterrompiTimer()
KillTimer ThisWorkbook.Application.hwnd, 1
End Sub
---------------------------------------------

All' interno della Sub VBA_TimerProc scrivi il codice che vuoi eseguire, come da commento

2 - Adesso vai in ThisWorkBook ed inserisci queste altre poche righe

---------------------------------------------
Private Sub Workbook_Deactivate()
InterrompiTimer
End Sub

Private Sub Workbook_Open()
AvviaTimer 5000
End Sub
---------------------------------------------

Come esempio ho impostato un timer pari a 5 secondi in Workbook_Open ;)