ciao, provo a metterci l'essenziale:

Sub partenza()

Debug.Print TimeValue(Now) & " entro in partenza"
'Timer2.Enabled = False

Timer3.Interval = 60000
If closedibarra = 0 Then closedibarra = ultimoprezzo
Timer3.Enabled = True
'

if condizionechetipare = true then pippo = true

Call routine2
End If

End If


End Sub

Private Sub timer3_timer()
Dim i As Integer
Dim errormessage As String

A = A + 1 ' qui per misurare 5 minuti
If A = 5 Then
A = 0

' varieistruzionioperative

If TimeValue(Now) < orafine Then Call partenza 'rientro in partenza da cui chiamerò routine2

if condizionechevuoi = true then pippo = false
'qui rimetto pippo = false ma dopo che sono tornato in partenza però la condizione mi rimette pippo = false di fatto, potrebbe essere l'unico inghippo

End If

End Sub


Sub routine2()
'istruzioni di debug
Timer1.Interval = 1100
Timer1.Enabled = True
' abilito dunque timer1

[B]End Sub[\B]

Private Sub timer1_timer()

if pippo = true then msgbox "ciao"
' e lui non lo fa, ho messo debug.print e dice che pippo = false ma dovrebbe essere true

End If

End Sub