Hi Dave_ross
it will get very long
probably better to use one timer that controls all the off events
Option Explicit
Dim iTimer As Date
Dim zTimer As Date
Dim xCount As Date
Dim iCount As Date
Dim eTime As Date
Dim XCell As Range
Dim iBoolean As Boolean
Dim iiBoolean As Boolean
Dim iiiBoolean As Boolean
Dim iiiiBoolean As Boolean
Dim iTimer1 As Date
Dim zTimer1 As Date
Dim xCount1 As Date
Dim iCount1 As Date
Dim eTime1 As Date
Dim xcell1 As Range
Dim iBoolean1 As Boolean
Dim iiBoolean11 As Boolean
Dim iiiBoolean111 As Boolean
Dim iiiiBoolean1111 As Boolean
Sub start_timers()
With ThisWorkbook.Sheets(1)
.Range("C3") = TimeValue("00:00:10")
.Range("E3") = TimeValue("00:00:10")
.Range("G3,I3") = TimeValue("00:00:10")
.Range("K3") = TimeValue("03:00:10")
End With
iBoolean = True
iiBoolean = True
iiiBoolean = True
iiiiBoolean = True
MasterTimer
End Sub
Sub start_timers1()
With ThisWorkbook.Sheets(1)
.Range("C3") = TimeValue("00:00:10")
.Range("E3") = TimeValue("00:00:10")
.Range("G3,I3") = TimeValue("00:00:10")
.Range("K3") = TimeValue("03:00:10")
End With
iBoolean1 = True
iiBoolean11 = True
iiiBoolean111 = True
iiiiBoolean1111 = True
MasterTimer1
End Sub
Sub MasterTimer()
If iBoolean Then
xCount = TimeValue("00:00:10")
Set XCell = ThisWorkbook.Sheets(1).Range("C3")
eTime = TimeValue("00:00:10")
iCount = TimeValue("00:00:01")
iBoolean = False
UpdateiTimer
STimer
ElseIf iiBoolean Then
xCount = TimeValue("00:00:10")
iCount = TimeValue("00:00:01")
Set XCell = ThisWorkbook.Sheets(1).Range("E3")
eTime = TimeValue("00:00:10")
iiBoolean = False
UpdateiTimer
STimer
ElseIf iiiBoolean Then
xCount = TimeValue("00:00:10")
iCount = TimeValue("00:00:01")
Set XCell = ThisWorkbook.Sheets(1).Range("G3,I3")
eTime = TimeValue("00:00:10")
iiiBoolean = False
UpdateiTimer
STimer
ElseIf iiiiBoolean Then
xCount = TimeValue("03:00:10")
iCount = TimeValue("00:00:01")
Set XCell = ThisWorkbook.Sheets(1).Range("K3")
eTime = TimeValue("03:00:10")
iiiiBoolean = False
UpdateiTimer
STimer
Else
KillTimers
End If
End Sub
Sub UpdateiTimer()
XCell = xCount
iTimer = Now + TimeValue("00:00:01")
xCount = xCount - iCount
Application.OnTime iTimer, "UpdateiTimer"
End Sub
Sub STimer()
zTimer = Now + eTime
Application.OnTime zTimer, "StopTimers"
End Sub
Sub StopTimers()
On Error Resume Next
Application.OnTime iTimer, "UpdateiTimer", , False
Application.OnTime zTimer, "STimer", , False
MasterTimer
End Sub
Sub KillTimers()
On Error Resume Next
Set XCell = Nothing
Application.OnTime iTimer, "UpdateiTimer", , False
Application.OnTime zTimer, "STimer", , False
End Sub
Sub MasterTimer1()
If iBoolean1 Then
xCount1 = TimeValue("00:00:10")
Set xcell1 = ThisWorkbook.Sheets(1).Range("C6")
eTime1 = TimeValue("00:00:10")
iCount1 = TimeValue("00:00:01")
iBoolean1 = False
UpdateiTimer1
STimer1
ElseIf iiBoolean11 Then
xCount1 = TimeValue("00:00:10")
iCount1 = TimeValue("00:00:01")
Set xcell1 = ThisWorkbook.Sheets(1).Range("E6")
eTime1 = TimeValue("00:00:10")
iiBoolean11 = False
UpdateiTimer1
STimer1
ElseIf iiiBoolean111 Then
xCount1 = TimeValue("00:00:10")
iCount1 = TimeValue("00:00:01")
Set xcell1 = ThisWorkbook.Sheets(1).Range("G6,I6")
eTime1 = TimeValue("00:00:10")
iiiBoolean111 = False
UpdateiTimer1
STimer1
ElseIf iiiiBoolean1111 Then
xCount1 = TimeValue("03:00:10")
iCount1 = TimeValue("00:00:01")
Set xcell1 = ThisWorkbook.Sheets(1).Range("K6")
eTime1 = TimeValue("03:00:10")
iiiiBoolean1111 = False
UpdateiTimer1
STimer1
Else
KillTimers1
End If
End Sub
Sub UpdateiTimer1()
xcell1 = xCount1
iTimer1 = Now + TimeValue("00:00:01")
xCount1 = xCount1 - iCount1
Application.OnTime iTimer1, "UpdateiTimer1"
End Sub
Sub STimer1()
zTimer1 = Now + eTime1
Application.OnTime zTimer1, "StopTimers1"
End Sub
Sub StopTimers1()
On Error Resume Next
Application.OnTime iTimer1, "UpdateiTimer1", , False
Application.OnTime zTimer1, "STimer1", , False
MasterTimer1
End Sub
Sub KillTimers1()
On Error Resume Next
Set xcell1 = Nothing
Application.OnTime iTimer1, "UpdateiTimer1", , False
Application.OnTime zTimer1, "STimer1", , False
End Sub
Bookmarks