PDA

Visualizza versione completa : aggiornare il foglio excel ogni secondo


xing83
21-10-2006, 10.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, 13.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 ;)