Here is a timer routine I use. In your start button run the sub StartTimer and in your stop button code run the sub StopTimer. This code goes in a standard module. Name the cell that your alloted time will go in "TimeDelay".
Option Explicit
Public RunWhen As Double
Public Const cRunIntervalSeconds = 1
Public Const cRunWhat = "Counter"
Public delay As Date
Sub StartTimer()
' start the procedure here
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, schedule:=True
End Sub
Sub StopTimer()
' OnTime needs to be switched off
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, schedule:=False
End Sub
Sub Counter()
' perform the countdown
delay = Range("TimeDelay")
'the starting value
If delay = 0 Then
StopTimer
MsgBox ("Time's Up!")
Exit Sub
End If
delay = delay - TimeSerial(0, 0, 1)
Range("TimeDelay") = delay
StartTimer ' schedule timer
End Sub
Hope this helps,