Il problema principale della macro suggerita da W&G e' che per aggiornare l'orologio tiene Excel occupato in modo stabile, quindi sostanzialmente inutilizzabile.
Devi invece creare una macro che si attiva ogni secondo e aggiorna il contenuto della cella orologio.
Ad esempio, metti questa nel modulo QuestaCartellaDiLavoro:
- Codice: Seleziona tutto
Private Sub Workbook_Open()
Dim aWb As Worksheet
'
Set aWb = ThisWorkbook.Sheets("Foglio2") '<<< Il foglio dove c'e' l'orologio
Set wCell = aWb.Range("Z1") '<<< Una cella libera sul foglio Orologio
wCell.Value = "Clock On"
Call OnnTime
End Sub
Mentre in un Modulo standard, es Modulo1, metterai:
- Codice: Seleziona tutto
Sub OnnTime()
Dim aWb As Worksheet
'
Set aWb = ThisWorkbook.Sheets("Foglio2") '<<< Il foglio dove c'e' l'orologio
Set oWatch = aWb.Range("O1") '<<< La cella con l' Orologio
Set wCell = aWb.Range("Z1") '<<< Una cella libera sul foglio Orologio
'
If wCell.Value <> "" Then
oWatch.Value = Now
Application.OnTime Now + TimeValue("00:00:01"), "OnnTime"
End If
End Sub
Salva il file e riaprilo, la "cella orologio" dovrebbe aggiornarsi ogni secondo.
Le righe marcate <<< devono essere compilate in modo consistente in ambedue le posizioni; il particolare la cella wCell (Z1 di Foglio2, nel mio esempio) viene anche usata per stoppare l'orologio, cosa che va fatta prima di chiudere il file. Per questo dovrai cancellarne il contenuto e la macro che aggiorna l'orologio si fermera'
Se non fermi l'orologio prima di chiudere il file allora lo fermerai dopo, quando il file si riaprira' da solo...
Quali sono i problemi di avere una macro che si attiva periodicamente lo scoprirai con l'uso.
Ciao