How to create stopwatch in Excel worksheet?
If you need a stopwatch in your Excel worksheet, it can help you track the time it takes to complete tasks. Imagine having a Start, Stop, and Reset button to control the stopwatch, as shown in the screenshot below. Clicking the Start button begins the timer, the Stop button pauses it, and the Reset button clears the time. In this article, we will show you step-by-step how to create a simple yet functional stopwatch in Excel using VBA code.
Create a stopwatch with three buttons by using VBA code
Create a stopwatch with three buttons by using VBA code
To create a stopwatch with three buttons, Start, Stop and Reset, please do with the following steps one by one.
Firstly, insert three command buttons.
1. Click "Developer" >" Insert" > "Command Button", see screenshot:
2. Then drag the mouse to draw a button, after inserting the button, you can change the button caption, please click "Developer" > "Properties", in the" Properties" dialog, enter the new caption "Start” for this button in the textbox beside the "Caption", see screenshots:
![]() | ![]() | ![]() |
3. Repeat the above two steps to insert other two buttons and caption them as “Stop” and “Reset”, see screenshot:
4. After inserting the buttons, exit the design mode by clicking "Developer" > "Design Mode".
Secondly, create a VBA code.
5. And then, right click the current worksheet tab, and choose "View Code", in the popped out "Microsoft Visual Basic for Applications" window, please copy and paste the following code into the "Sheet Code":
Public StopIt As Boolean
Public ResetIt As Boolean
Public LastTime
Private Sub CommandButton1_Click()
Dim StartTime, FinishTime, TotalTime, PauseTime
StopIt = False
ResetIt = False
If Range("C2") = 0 Then
StartTime = Timer
PauseTime = 0
LastTime = 0
Else
StartTime = 0
PauseTime = Timer
End If
StartIt:
DoEvents
If StopIt = True Then
LastTime = TotalTime
Exit Sub
Else
FinishTime = Timer
TotalTime = FinishTime - StartTime + LastTime - PauseTime
TTime = TotalTime * 100
HM = TTime Mod 100
TTime = TTime \ 100
hh = TTime \ 3600
TTime = TTime Mod 3600
MM = TTime \ 60
SS = TTime Mod 60
Range("C2").Value = Format(hh, "00") & ":" & Format(MM, "00") & ":" & Format(SS, "00") & "." & Format(HM, "00")
If ResetIt = True Then
Range("C2") = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
LastTime = 0
PauseTime = 0
End
End If
GoTo StartIt
End If
End Sub
Private Sub CommandButton2_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
StopIt = True
End Sub
Private Sub CommandButton3_Click()
Range("C2").Value = Format(0, "00") & ":" & Format(0, "00") & ":" & Format(0, "00") & "." & Format(0, "00")
LastTime = 0
ResetIt = True
End Sub
Note: In the above code, "C2" is the cell where the stopwatch time will be inserted, and the "CommandButton1", "CommandButton2", "CommandButton3" are the button names, you can view the exact button name from the "Name Box", see screenshot:
Thirdly, format the stopwatch time cell.
6. Then you should format the time cell as "Text" format, and you can change the cell size, font, font color, background, etc. as you need, see screenshot:
7. After finishing above steps, from now on, when you click "Start" button, the time will start, and when you click the "Stop" button, it will stop time. The "Reset" button will reset the time, see screenshot:
Demo: Create a stopwatch with three buttons by using VBA code
Best Office Productivity Tools
Supercharge Your Excel Skills with Kutools for Excel, and Experience Efficiency Like Never Before. Kutools for Excel Offers Over 300 Advanced Features to Boost Productivity and Save Time. Click Here to Get The Feature You Need The Most...
Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier
- Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
- Open and create multiple documents in new tabs of the same window, rather than in new windows.
- Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!