See specific critical predecessors from start of Project

G

Glynton

Hi,

If I have a deadline task in the middle of a project how do I see the
critical predecessors associated only with this task (instead of all critical
tasks associated with the project end date)?

I'm thinking that I select the deadline task and be able to see a network
diagram of all the predecessor tasks/paths back to the start of the project.

Thanks,
 
J

John

Glynton said:
Hi,

If I have a deadline task in the middle of a project how do I see the
critical predecessors associated only with this task (instead of all critical
tasks associated with the project end date)?

I'm thinking that I select the deadline task and be able to see a network
diagram of all the predecessor tasks/paths back to the start of the project.

Thanks,

Glynton,
Here's one way to highlight that path, there may be others.

First, temporarily remove all constraints and shift the end milestone
out by several months. Ideally you shouldn't have any constraints anyway
so this shouldn't be a big deal. Then, set a finish-no-later-than
constraint on the task of interest. You will then see the critical path
to that task. You will also have a critical path to the end milestone
but it should be very easy to distinguish the two by setting up a filter
to hide all tasks after the task of interest. You can even save the file
under a new name so you don't have to worry about undoing the steps it
took to produce this customized view.

Hope this helps.
John
Project MVP
 
D

Darrell

Glynton,

I usually use a flag field to do this. Starting at the milestone I begin
toggling the flag field to yes for each predeccessor working back towards the
project start. Once you have flagged all of the predeccessor tasks you can
quickly filter on the flag field to see the critical path for the milestone.

Darrell
 
R

Rick Williams

Hi Glynton,
Use this macro, called LogicToATask. Paste it into your VBA Editor, then go
back to Project. Select the task of interest, and run the macro. It calls the
function GetPred, which then calls itself recursively, finding all
predecessors with zero FreeSlack. It sets Flag20=True on each of these tasks,
and at the end it filters for Flag20=True (so make sure to clear out theat
field before you run this).
Note that the macro also works if you have multiple tasks selected.
Regards,
Rick Williams


Function GetPred(myTask As Task) As Task
Dim pTask As Task
Dim nTask As Object
myTask.Flag20 = True
For Each pTask In myTask.PredecessorTasks
If pTask.FreeSlack = 0 Then
pTask.Flag20 = True
Set nTask = GetPred(pTask)
End If
Next
End Function

Sub LogicToATask()
Dim tskDriver As Object
Dim oTask As Task
For Each oTask In ActiveSelection.Tasks
If Not (oTask Is Nothing) Then
oTask.Flag20 = False
Set tskDriver = GetPred(oTask)
End If
Next
FilterEdit Name:="Flag20IsTrue", TaskFilter:=True, Create:=True,
OverwriteExisting:=True, FieldName:="Flag20", Test:="equals", Value:="Yes",
ShowInMenu:=True, ShowSummaryTasks:=False
FilterApply Name:="Flag20IsTrue"
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top