Today, lets learn how to make a simple timer app using Excel. First some background…,
Recently, I learned how to solve Rubik’s cube from my nephew. As a budding cuber, I wanted to track my progress. Initially I used the stopwatch in my iPhone. But it wont let me track previous times. So I thought, “Well, I can use Excel for this”.
So I made a small timer app using Excel. Its quite minimalistic. It has a single button. I press it and it tracks the start time (date & time stamp). If I press the button again, it records the duration.
This way, I can see my progress over next few weeks and may be plot the trend.
Demo of the Excel VBA timer
Here is a short demo. This is what we will be building.

Tutorial to make a timer in Excel
To make a timer app in Excel, first we need to understand the logic for this. If VBA apps can be defined on a scale of 1 to 10 (1 being easiest to develop and 10 being most complex), our timer app can be classified as 1.5. It is really simple. But nevertheless, it is a good idea to list down various ingredients and basic logic to follow.
So we need,
- A table to store the time stamps & durations
- A button (simple text box will do) to start & stop the timer
Set up the timer worksheet
In a blank worksheet, make space for a 2 column table. Type Time stamp & Duration as column headings and make a table from these (CTRL+T to insert the table)
Note: For the macro to work, you do not need a table. Any 2 column range will do. A table makes our timer app look sexy.
Also, insert a rounded rectangle and format it to look like a button (from Format Ribbon > Shape Styles, select something slick and pretty)
In a blank cell, type the word “Start”. Name this cell as timer.button.label
Now, click on the rounded rectangle button, go to formula bar and type =timer.button.label
💡 Tip: Yes, you can assign names or cell references to shapes. This way, whatever text is in the cell will be shown inside the shape.
Other names to make:
Although we can write VBA code without creating these names, our code will be readable with these names. So here we go:
- Select the header “Timestamp” of the table and name it as time.stamp.start
- Name the table as Durations from Table Design ribbon
- In a blank cell, write the formula =COUNTA(Durations[Timestamp])
- This counts how many timestamps are already inserted.
- Now name this cell as count.of.timestamps
We are done. Lets roll in to VBA.
Writing the VBA code for timer
Open VBE (Visual Basic Editor) and insert a new module in your timer workbook. There write this code.
Sub startStopTimer()
If Range("timer.button.label") = "Start" Then
Range("time.stamp.start").Offset(Range("count.of.timestamps") + 1).Value = Now
Range("timer.button.label") = "Stop"
Else
Range("time.stamp.start").Offset(Range("count.of.timestamps"), 1).Value = Now - Range("time.stamp.start").Offset(Range("count.of.timestamps"))
Range("timer.button.label") = "Start"
End If
End Sub
Assign this macro to the timer button
Right click on timer button and choose “Assign macro”. Select the startStopTimer sub from the list and click ok.
Now go ahead and test it. Assuming you have used same names as per this post, your timer should work.
How this macro works?
When you click on the timer button, you want one of the 2 things to happen.
- You want to start the timer
- You want to stop the timer
What you want to do can be checked with this logical check.
Range("timer.button.label") = "Start"
If this is true, then you want to start the timer.
Else, you want to stop the timer.
If you want to start the timer
Then, we need to go to the last row of the table + 1 and insert current time (now) in that cell.
This is done by,
Range("time.stamp.start").Offset(Range("count.of.timestamps") + 1).Value = Now
Once we do that, we need to change timer button’s text to “Stop”.
This is done by,
Range("timer.button.label") = "Stop"
If you want to stop the timer
Then, we need to go to the last row’s 2nd column of the table and print the difference between latest time (now) and starting time (last row, first column value)
This is done by,
Range("time.stamp.start").Offset(Range("count.of.timestamps"), 1).Value = Now - Range("time.stamp.start").Offset(Range("count.of.timestamps"))
Once we do that, we need to change the button text to “Start” by using this code:
Range("timer.button.label") = "Start"
That’s all. Our VBA code is rather simple.
One last step, formatting the duration
If you look at the duration, it could read something like 0.0042354. This is because duration is displayed as a fraction of day. So 0.0042354 means the duration is 0.42% of a day.
Now, wouldn’t it be better if we can show this in minutes and seconds?
To do that, select the entire table column of durations, press CTRL+1
Then, set formatting as custom and type code as [mm]:ss
And you are done!
Download Simple Timer Excel VBA workbook
Click here to download Simple Timer Excel VBA workbook. Play with it. Use it to track your Sudoku, crossword or knitting times. Or even Rubik’s cube times. See what trends and patterns you can uncover.
Do you use Excel for tracking time?
I know many companies use Excel based trackers to keep track of employee time. I personally use time tracking features of Excel for needs like this all the time.
What about you? Do you use Excel time functions like NOW, TODAY and VBA to track progress? What techniques you apply? Please share using comments.
Like tracking? You will love these
If you track things with Excel, you are going to find below tutorials very useful.
- Tracking issues & risks – Project management
- Tracking to dos – Project Management
- Expense tracker using Excel – 7 templates
- Annual goals tracker
- Bonus: Introduction to VBA – 5 part crash course
Note: Rubik’s cube image by Booyabazooka thru Wikimedia














22 Responses to “Master Excel 2007 Ribbon with this Free Learning Guide”
Thank you, kind sir. Well done with the baby making.
I cannot get signed up for your newsletter. I tied both this email address and churchill2001@hotmail.com. never a response.
I cannot get signed up for your newsletter. I tied both this email address and churchill2001_at_hotmail_dot_com. never a response for either attempt.
@Doug, it shows that your email address is pending verification. Can you check your inbox (and may be spam folder too) for an email from me? The subject will be "Activate Subscription to Get your Free Excel Tips E-book"
[...] PPS: If you are struggling with ribbon, you should check out ribbon learning guide. [...]
Very Useful Info..Keep it up..
@Ajay.. you are welcome 🙂
how do u download microsoft excel for free?
http://www.microsoft.com/en-us/default.aspx
Select Office
Free Trial
[...] Excel 2010 UI looks considerably better and less stressful than 2007. The colors are dull and subtle. The icons don’t call for attention unless you want to do something. The menus / ribbons feel smoother and slicker. [Learn to use Excel Ribbon with this Free e-Book] [...]
I can't open this pdf. I get the error message:
You do not have the required license to open this file.
Please request a license from the creator of the file, and add it using the license manager and they try opening it again.
What gives??
I downloaded the file again and it worked this time. Strange. (First file was 116 KB, second was 1644 KB... ???)
[...] More ribbon goodness | Free e-book to learn Excel Ribbon [...]
Hi Chandoo,
thanks for sharing your Excel 2007 learning experience with us; unfortunately the link to the pdf of the free Excel 2007 learning guide seems broken: my Acrobate Readers flags: "Unkown file type or corrupte data".
Have a nice day
Michael
well done this is great
Can somebody just provide a link the classic TAB exportedUI files for MS Office 2003 for us to use in office 2007/2010?. searching online, everybody just wnats to make a buck online with silly Classic Tab installers which do nothing more than inport exportedUI files for you.
Don't give me a ribbon how to guide, just give me free exportedUI files. I should not have to pay anyone for this, it is free XML, MS should have included this to begin with.
thanks
Dear.
There are a set of debit values and a set ot credit values in a column. I want a vba code by whcich the debit value plus a single / multiple credit value is zero that needs to be marked .
finally i will come to know out of the avaibale debits which cannot be used the with avilable credits either single or multiple values.
If multiple matching sets are available let it take the 1st or the 2nd one its not an issue.
Column A Ref
-1000 A
-5000 B
-8000 C
800 A
100 A
100 A
2000 B
3000 B
13000
15000
hi...
how to make this add-ins and display in ribbon... check this sample : http://www.cprsoft.com/GCDemo01.htm
thank you sir...
Please tell me format painter short cut key In excel ?
Thanks In Advance
thankfully.likeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee
I am very much happy for such a great opportunity given to excel learners to advance their skills for the betterment of the future. I am a great user of this site and feel proud to have come across this web site.
I appreciate this, because I didn't do much works in my project management studies using gantt chart. As of now are have now learned some advancement.