What are you starting now?

I recently came across this interesting question from Algola in MPUG Discussion Forum


In other words, the solution should work for the below scenarios
Scenario 1: Unstarted tasks without any predecessors

Scenario 2: Unstarted tasks with all predecessors 100% complete

Let me demonstrate how this can be done using VBA Macros

1. Click View tab. Click Macros dropdown and select Visual Basic


2. In the editor, double click your current project on the left panel. This will display the code editor.
3. Now, insert a procedure named ReadyToStart by selecting Insert menu, and then Procedure.

4. Inside the ReadyToStart procedure, write this code to loop through all the tasks in the current project

5. We will now use the Marked field to indicate whether the task is ready to start or not. If the current task is not yet started, set Marked to True otherwise False

6. If the current task is not yet started then check if predecessors, if any, are completed or not

7. After marking the tasks, we will now highlight these tasks by creating a filter Ready To Start

The complete code is shown below

8. Now to run this macro click View tab. Click Macros dropdown and select View Macros. Select the macro ReadyToStart and click Run button

Highlight items after every change

Project 2013 gives features to highlight, filter and group tasks on certain conditions. These commands are available in View ribbon.

I have selected the criteria "Critical" in Highlight list, and Project highlights the critical tasks with yellow background color.


Now, I changed the duration of Build 2 to 4 days. This task doesn’t get highlighted though it is part of the critical path. Why?

After selecting the criteria, Project applies it only once in the current view. In other words, Project doesn’t refresh the view after every change.

You need to write a small script that will be apply the filter after every change, and this is quite simple.

1. Click View tab. Click Macros dropdown and select Visual Basic

2. In the editor, double click your current project on the left panel.
3. Now change the object and procedure to "Project" and "Change".

4. This will include a private sub-routine which will be invoked automatically after every edit!!

5. Within the sub-routine, include the below script. This code applies the Critical filter if the current view is "Gantt Chart"
If pj.CurrentView = "Gantt Chart" Then
FilterApply Name:="Critical", Highlight:=True
End If

6. Close the editor.

Now, I changed the duration of Build 2 to 5 days and Project automatically highlights the critical tasks 🙂

What are you finishing today?

Project 2013 ships with "Tasks Due This Week" filter. This filter shows detail tasks with finish between the start and end of the current week.

What if you want to display the tasks due today?

1. On the View tab, click the down arrow of the Filter box to display the drop-down menu and then select New Filter in the menu to open the Filter Definition dialog box.
2. Enter the name "Tasks Due Today" and set the filter criteria as it is seen below and click Save:

The value string “Today is:”? evaluates to the Current Date field entered in Project Information dialog box. If we use a different prompt string, for example, "Enter a date:"?, then the filter asks for a date to compare with the task finish dates.

3. On the View tab, select the filter "Tasks Due Today" from Highlight: dropdown (by default "No Highlight" is applied)

So, what are you finishing today?