I would like to see a list of all tasks that satisfy one of the following:

  • The task has no predecessors
  • Every predecessor that the task has is marked as 100% complete.

I can add simple filters from View > Filter > New Filter, but I can't figure out how to test every predecessor of a task. Is there a way to use some advanced filtering functionality to accomplish this?

1 Answer 1


Step 1: Use VBA to populate a custom flag field matching your conditions. Something like this should get you close:

Sub ShouldStart()
Dim t As Task
Dim tp As Task

For Each t In ActiveProject.Tasks
    If Not t Is Nothing Then
        t.Flag5 = False
        If t.PercentComplete < 100 Then
            If t.PredecessorTasks.Count = 0 Then
                t.Flag5 = True
                GoTo NextTask
                For Each tp In t.PredecessorTasks
                    If tp.PercentComplete < 100 Then GoTo NextTask
                Next tp
                t.Flag5 = True
            End If
        End If

    End If
Next t

End Sub

Step 2: Make a filter based on the custom flag field.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.