Ciao Anthony,
alcuni passi del tuo codice mi interessano, per esempio come ricavarmi i secondi, (poi, per piacere, mi spieghi perché 62-Second(Now) e non 59-Second(Now), i secondi non vanno da 0 a 59?)
Problema:
La macro non si ferma se la variabile VariaPausa va a 0 (Il mio Stop) mentre si ferma, giustamente, se C1 va a 0
ma C1 potrebbe non andare a 0 e, quindi, pensavo di mettere una schedulazione=false facendo così:
- Codice: Seleziona tutto
Sub MacroTime()
Variapausa = ThisWorkbook.Sheets("Foglio2").Range("D1").Value '<< test per provare se funziona variando da 0 a 1
ThisWorkbook.Sheets("Foglio2").Range("C2").Value = "=Now()"
ThisWorkbook.Sheets("Foglio2").Range("C2").NumberFormat = "hh:mm;@"
Delay = 62 - Second(Now)
NextT = Now + TimeSerial(0, 0, Delay)
If Variapausa > 0 Then
If ThisWorkbook.Sheets("Foglio2").Range("C1").Value > 0 Then Application.OnTime Now + TimeSerial(0, 0, Delay), "MacroTime"
Else
Application.OnTime EarliestTime:=NextT, Procedure:="MacroTime", Schedule:=False
'Application.OnTime Now + TimeSerial(0, 0, Delay), "MacroTime" '<<<< ho commentato questo per fare delle prove
'MsgBox (Delay)
End If
End Sub
Lancio la macro dal foglio2 e funziona tutto fino a quando non arresto mettendo a 0 la Cella D1 (Variapausa), scade il minuto e mi dà il seguente errore:
Errore Run-time '1004'
Metodo 'OnTime' dell'oggetto '_Application' non riuscito
Che faccio lascio la schedulazione aperta? (mettendo l'etichetta goto esci, come dal codice postato precedentemente e funzionante?)
Ciao