This article is part of our VBA Crash Course. Please read the rest of the articles in this series by clicking below links.

- What is VBA & Writing your First VBA Macro in Excel
- Understanding Variables, Conditions & Loops in VBA
- Using Cells, Ranges & Other Objects in your Macros
- Putting it all together – Your First VBA Application using Excel
- My Top 10 Tips for Mastering VBA & Excel Macros
In the part 5 of our VBA Crash Course, let me share you my tips for mastering Excel VBA.
A warning before jumping in to the tips: I am not a VBA expert. I am a learner, just like you. I find VBA quite interesting language to learn and explore. These tips are based on what I have learned writing VBA (and VB code) in the last 12 years.
Tips for using & mastering VBA in short term:
#1 Think Thru before Coding
The best way to solve even a very complex problem is to think thru. Next time, when you are about to automate that report or clean some imported data using VBA, just write the logic down on a paper. See and understand various aspects of the problem. The solution becomes clear to you. It has worked for me and it works for you too.
Related: Building your First VBA Application using Excel
#2 Use the Recorder
Excel’s built in Macro recorder is a great way to learn about new objects and ways to deal with them. I use it all the time to record parts of my code and then customize the output. Just keep in mind that macro recorder does not produce the best or complete code all the time. But it gives you a damn good idea about how to write code for a set of actions.
Related: Introduction to Excel VBA & Writing your First Macro
#3 Use Immediate Window
Excel VBE has a powerful feature called as Immediate window. Think of this like a sandbox. You can write almost any VBA statements here and get quick results. For example, Open VBE (ALT+F11 in Excel) and go to Immediate window.
- Type ?Activecell.Value
- Press Enter
- And you will see the current cell’s value printed in immediate window
Here is a quick demo of immediate window.

#4 Debug.Print is your Friend
There are 3 things you cannot avoid in life
- your 2 year old daughter thinking it would be fun to throw a stone on your car
- your baby boy running and sitting in your lap suddenly making the hot coffee spill on you
- and of course bugs in your code
Bug is a fancy name given to the situation when your code is not doing what it is supposed to do.
But why?!? Well, we don’t know why unless we examine. And this is where Debug.Print can come handy. In below example, you would see the values of all tasks in the immediate window as your program runs.

#5 There is a method for that!
Just like Apple says There is an App for that!, may be Microsoft should say There is a Method for that! about VBA. I say this because VBA comes with a lot of methods and functions to do lots of things. If you are thinking of writing your own code to reverse some text, split something based on a delimiter, find the intersection of 2 ranges or run something after 10 seconds, may be you should before writing your code. Because, my dear, there is a method for that.
Whenever you feel like you are writing code for a problem that is already solved several times, chances are there is some built-in method or object for that. So just search.
Tips for Using & Mastering VBA in Long-term
While the above tips are good for solving your immediate problems, we should always aim for continuous improvement. Here are my top tips for keeping your VBA in shape.
#6 Break Your Work in to Smaller Chunks
No matter how complex your work situation or problem might be, chances are, it is made up of several smaller problems. So break things in to smaller chunks. This coding technique is called as modularization. Modularization has several advantages:
- Reuse: Once you break a big program to smaller parts, you can reuse a smaller part in several places or in other projects.
- Testable: Smaller code fragments are easy to test and debug.
- Maintainable: You can maintain smaller parts easily. You can upgrade them once you get a better version of Excel without breaking much.
#7 Build Iteratively
Rome is not built in one day, so is your buildRome() macro. Whenever you are attempting to automate a whole department’s work, take a step back and see what is the smallest (but most useful) feature you can have. Implement it and then add new features iteratively. That way, your turn-around time is improved, you look pretty in front of your boss and you feel in control of things.
Iterative development also lets you stop whenever you want and you would still have some working piece of code.
#8 Keep a Good Reference Handy
If you are going to use VBA quite often, then invest in a good reference. I suggest John Walkenbach’s Excel 2010 Power Programming if you are looking for one. Good reference books have lots of information and tips buried in them. For example, I keep Excel 2010 Power Programming book on my desk all the time and refer to it whenever I feel like not doing any work. I always learn something new.
#9 Take up Challenges
“Computers are like bicycles for our mind” said Steve Jobs. I am not sure if hours I put on facebook, twitter and gmail are keeping my mind fit. But any time I invest on programming is worth every second. I feel very sharp, excited and stoked when I solve a tricky problem using a computer program (be it VBA, an Excel Formula or php or anything else).
I think if you want to be good in VBA or Excel, then take up challenging work. Try to automate a report that you (or your team) produce using VBA, Try to simplify a formula or improve a chart.
If you are looking for fresh challenges, then look at our forums. We get dozens of interesting questions everyday.
#10 Use VBA only when you need it
Once you start learning VBA, it is natural to feel excited about the possibilities you have. But keep in mind that overusing it can complicate your work.
My suggestion: Use Excel’s native features as much as possible. Excel has several built in features to solve various day to day problems (conditional formatting, pivot tables, formulas, data validation, form controls to name a few). Only when you feel that there is no easy way to use Excel alone to solve a problem, go for VBA.
Example: Recently, I showed you all how to split text on new line using VBA. I did that because I thought there was no way to do it using Excel’s built in text-to-columns utility. Well, I was wrong. As Debra proved in the comments,
Chandoo, if you want to do this in the Text To Columns dialog box,
Select Delimited, then check “Other”
In the box beside Other, press the Alt key, and type (using the number keypad): 0010That should separate the text on the line break character.
So if you feel like there is no way to do something in Excel without resorting to VBA, well, just keep looking, because there might be a way.
What are your Tips for Learning & Mastering VBA?
Its your turn now. What are your top tips for mastering VBA? Please share using comments because I and many of our readers want to learn. Go ahead and post.
Join Our VBA Classes
We run an online VBA (Macros) Class to make you awesome. This class offers 20+ hours of video content on all aspects of VBA – right from basics to advanced stuff. You can watch the lessons anytime and learn at your own pace. Each lesson offers a download workbook with sample code. If you are interested to learn VBA and become a master in it, please consider joining this course.
Click here to learn more and Join our VBA program.
Thanks
This post concludes our series on VBA Crash Course. I hope you enjoyed these 5 articles and learned something new. I really enjoyed writing this series. Thank you so much for your comments and support.
For more about VBA & Macros, consider enrolling in our online course.














49 Responses to “Project Management Dashboard / Project Status Report using Excel [Part 6 of 6]”
[...] display milestones Part 4: Time sheets and Resource management Issue Trackers & Risk Management Project Status Reporting – Dashboard Bonus Post: Using Burn Down Charts to Understand Project [...]
Excellent!
I was looking forward to this and you've done it again...Shame I can't claim it was all my own work 😉
ps hope you're getting enough sleep
Excelent !!! Tks to share your knowledge with us.
Izabel
Sao Paulo - Brazil
Nice job!.
I'm also keen on PM Excel Dashboards. Please, take a look at
http://screencast.com/t/TyaxH5r4mDf
That's one example of my Project control Spreadsheets.
Cheers
Hi Miguel,
Do you share your PM Excel Dashboards? It looks awesome.
Regards,
Germán
Hi M. Miguel,
Can you share your Excel Dashboards? Awesome work BTW.
Regards,
Michel Levesque
Can you share the PM excel template?
[...] haired Dilbert hat zum Abschluss einer Artikeserie zum Thema Projektmanagement mit Excel eine Anleitung zum Bau eines Projekt-Dashboards veröffentlicht. Ein Dashboard ist eine Visualisierungsform für große Mengen von meist [...]
Quite a nice and helpful article. I am sure excel is one of the most used application across many many big companies. And your info on project status update using excel would surely be usefull. Keep up the good work on this blog site. Also to share there are some open source flash-based graphing and charting solution which caould also be used on any project..
http://askwiki.blogspot.com/2009/07/how-to-create-quality-charts-using.html
@Alex, Izabel .. thank you 🙂
@Miguel: Thank you. Your dashboard looks very good. It is inclined towards the budget and finances of the project. I have kept those aspects out of this series. May be I will revisit the financial aspect of projects at a later point.
@Rishil: Thank you. Yes, you can create flash based charts (or even simple image based charts) and embed them in a project dashboard that can be published to the team using intranet (like sharepoint). This is how large companies usually do it. Thanks for sharing the Askwiki article.
Great looking dashboard!! Do you have a version for the Mac versions of Office available?
Thanks
Chandoo,
this is great piece of collating info.I liked it and shall try using it in office.
Thanks for the all hard work behind this.
Chandoo,
Kudos. This is really as simple as it gets for laymen. We did this sort of stuff in Consulting - but this can now become really simple for people. Will have my team look at this! Great work.
thanks,
Mrigank
[...] I suggest reading my 7 part series on project management using excel. Starting with Excel Gantt Charts to Project Dashboards. [...]
Just downloaded the project management template bundle...great!
Have you done anywork on a Project Portfolio Dashboard template?
@Bw... Thanks for getting a copy of the templates. 🙂 I have worked on few assignments where we built such templates. But these are similar to other regular dashboard templates. I will share some of these ideas in a later post someday. Meanwhile if you have any ideas on how to structure project portfolio dashboard, let me know using comments or email.
[...] to display milestones Time sheets and Resource management Issue Trackers & Risk Management Project Status Reporting – Dashboard Bonus Post: Using Burn Down Charts to Understand Project [...]
[...] display milestones Time sheets and Resource management Part 5: Issue Trackers & Risk Management Project Status Reporting – Dashboard Bonus Post: Using Burn Down Charts to Understand Project [...]
[...] to display milestones Time sheets and Resource management Issue Trackers & Risk Management Project Status Reporting – Dashboard Bonus Post: Using Burn Down Charts to Understand Project [...]
Thanks fro the great ideas! To get a sense of the layout and design of a Dashboard more geared toward Cost and Schedule anaysis, check out the example Dashboard at http://www.ProjectDashboards.com which was built entirely in excel.
hey,
i just need a simple Chart where by i can show some of the projects by % wise. no dates required.
1st column Project name and 2nd column will be status (filled with %). can you pls help me out.
Thanks.
@DS... if you have excel 2007, you can use data bars in conditional formatting for this purpose.
Hi Chandoo - this series is an excellent resource and tutorial, thank you for sharing.
When I sat down to consider what my dashboard should look like, one of the most important features for me is to be able to maintain version control and to show simply on what version is on display.
Apart from the naming convention of the file name, is there a good way to do this within a dashboard? I'd be interested to hear your thoughts!
@Larph: Welcome 🙂
> You can do version control thru Macros (but always remember that your audience can disable macros)
> Another option is to use a static time stamp / version number in the title page of dashboard that you update manually whenever you make changes to the file
> In excel 2010, you can keep track of file versions from File menu. This can be used to select a previous version of dashboard.
> Best option is to use a version control system like SVN or upload files to Sharepoint or something like that. This will take care of versioning for you (although it is a bit technical and dashboard audience may have difficulty figuring the versions out).
> The easiest option is to use filenames and the CELL() formula to get the version number (or date) from the filename so you can show it on the dashboard.
Hi Chandoo... I'm following you from Brazil...
I would like to thank you for the tips about excel, mainly with dashboards ... It helped me a lot …
Take care...
Di
On the dashboard when I print, the text is blanked out in the middle of the Issues list - suggestions on how to fix?
[...] Project Management Dashboard in Excel [...]
Hi Chandoo, do you have an equivalent Project Management Dashboard / Project Status Report for MS Office 2010?
As a Microsoft trainer I'm interested in your choice of Excel for project management. I'm assuming that you've tried Microsoft Project and have decided not to use it? We get folks on our MS Project courses who've tried to use Excel for PM purposes and none of them have made such an impressive project plan, but I wonder is it worth all the effort?
This looks very interesting. How may I be a part of this
Does this template work in Google Spreadsheets?
Many thanks for sharing your expertise with us. Keep up the good work 🙂
Heya i'm for the first time here. I came across this board and I to find It really helpful & it helped me out a lot. I am hoping to offer one thing again and aid others like you helped me.
Hi Chandoo,
Your PM dashboards impressed me so much that I've downloaded the Portfolio and Project Management package. All of the documents look very professional.
I was going through the Portfolio dashboard and I had a question.
When I enter in additional holidays they are highlighted in the gantt chart. Is it possible so that the name of the holiday shows up in the highlighted area of the gantt chart.
Thanks
Adam
[...] Project Status Dashboard [...]
[...] Project Status Dashboard in Excel [...]
[...] Project Management Dashboard in Excel [...]
can you confirm that the downloads will work on a mac - excel for mac v14.3.6
thanks
Made a slight variation on the schedule sheet,
1. Add a date column for start
2. In week column cell use =weeknum() and link to date cell
3. Hide week column
When you enter in a date for each task the week number is populated accordingly
simple but more effective, you can also dynamically link the date cell to your MSP project file for even more automation!!
I purchased a copy of the project management dashboard excel file. I misplaced the password to unlock the file and make modification. Can you please resend the password.
Thank much in advance...
Hi there! I just would like to give you a big thumbs up for your great info
you've got right here on this post. I'll be returning to your website
for more soon.
I bought ur project management template just want to know how to hide the budget section from portfolio?
Hi, Thanks - very good job you've prepared!
You've inspired me as well 🙂
Best regards
Hello!
I am using a gantt chart template which i got from your website. All is good just when I add all my acitivities in data spreadsheet and then go back to gantt chart to view them, I only see first 9 and then I need to keep scrolling for the next ones. is it possible to see most of the activities if not all in the single frame.
thanks for answering!
This is my first time pay a visit at here and i am actually happy to read all at alone place.
I am interested in your dashboard; downloaded the locked version, unable to use it...do you have a user guide that is available that I can see and use on the locked version?
Please send me daily newsletter
Hi,
I downloaded the PM dashboard and the gantt chart only has dates till the year 2016. How do I change this to include 2017 FY as well.
When I enter a activity for this year , it fails to show up on the chart.
Hi
Would.like to purchase the project management .kits
Pls share the payment link in INR
Also share your contact number to speak with you
Regards
Hari
9384825926