How to create a countdown timer in Excel.
This allows you to display a timer in whatever cell you want and it will count down until it reaches zero. I also included a method to stop or pause the timer.
To create the countdown timer, a macro will be used. However, this tutorial does not require any previous knowledge of macros or VBA in Excel.
If you are familiar with VBA, you can just copy the full macro code from below and skip everything else.
Add a Stop or Pause Feature to the Timer
Add Buttons in the Spreadsheet to Control the Timer
Countdown Timer Full Macro Code
To make a countdown timer we need to install a macro into Excel, don't worry though, that's easy. Before that though, we need to setup a cell in the spreadsheet to hold the timer.








Sub timer()
interval = Now + TimeValue("00:00:01")
If Range("A1").Value = 0 Then Exit Sub
Range("A1") = Range("A1") - TimeValue("00:00:01")
Application.OnTime interval, "timer"
End Sub


When the timer gets to zero, it will stop.
Now that we have a working timer, it's a good idea to be able to stop it.
To do this, we need to add just a couple things to our macro.
Public interval As Date

Sub stop_timer()
Application.OnTime EarliestTime:=interval, Procedure:="timer", Schedule:=False
End Sub



That's all there is to it!
Now, always going to the Macro window, Alt + F8, can be really annoying, so let's make these macros run from some buttons in the worksheet.
This is a simple feature once you've got working macros.
Simply go to the Insert menu and select Shapes and then select a rounded rectangle.

Adjust the size of the buttons and add some text to them.

Right-click the first button and click Assign Macro...

In the window that opens, click timer and hit OK.

Repeat that for the next button, obviously selecting stop_timer this time.
That's it!

If you want to learn more about adding buttons to Excel and making them run macros, check out this tutorial:
Attach a Macro to a Button in Excel
Here is the complete macro code needed for this timer:
Public interval As Date
Sub timer()
interval = Now + TimeValue("00:00:01")
If Range("A1").Value = 0 Then Exit Sub
Range("A1") = Range("A1") - TimeValue("00:00:01")
Application.OnTime interval, "timer"
End Sub
Sub stop_timer()
Application.OnTime EarliestTime:=interval, Procedure:="timer", Schedule:=False
End Sub
This code goes into a regular module.
When you first start the timer it may seem to count fast for the first couple seconds but it should quickly correct itself.
To make this macro run when the Excel workbook is opened, read these tutorials:
How to Run a Macro Automatically when Excel is Opened
How to Run a Macro from Another Macro
Make sure to download the spreadsheet attached to this tutorial so you can see everything in Excel and more easily copy/paste what you need.
Follow along with the tutorial by downloading the files used in it. (Completely Free)
Phone number is optional - we use it to send course discounts and weekly updates via SMS.