locked
Critical Path to a Deadline RRS feed

  • Question

  • Hello-

    I need to determine the critical path to a a certain key milestone. Using the built in MS Project Critical Path it shows me the critical path to the end of all of the tasks. I want to know both, the critical path to the finish and to a certain deadline. I’ve tried using the “Show multiple critical path’s” but I don’t understand how it determines the critical path’s besides the main one.

    Once we figure out how to show the two paths can graphically show them as different colors?

    Thanks!

    Friday, July 8, 2016 9:02 PM

Answers

  • Okay,

    1. select your task then select Format, Task Path, Driving Predecessors then run the following macro:
    Sub DrivenFilter()
    Dim Tsk As Task
        For Each Tsk In ActiveProject.Tasks
            If Not Tsk Is Nothing Then
                If Tsk.PathDrivingPredecessor Then
                    Tsk.Flag1 = True
                Else
                    Tsk.Flag1 = False
                End If
            End If
        Next Tsk
    End Sub
    

    Then filter for the custom field Flag1=Yes and I think you have what you want.

    If you already use Flag1 for something else, edit the code to use any of the other Flag fields you don't use.


    Rod Gill
    Author of the one and only Project VBA Book
    www.project-systems.co.nz

    • Proposed as answer by Julie Sheets Sunday, July 17, 2016 5:10 PM
    • Marked as answer by Julie Sheets Tuesday, July 19, 2016 4:39 PM
    Wednesday, July 13, 2016 10:59 PM

All replies

  • Show multiple critical paths shows a critical path to all tasks with no successors. I would turn this option off.

    Then double-click your key milestone. In the Advanced tab set the deadline date to the date you need. If your milestone has gone past that date you will see a red diamond in the Indicators column and tasks leading up to it will be critical. Otherwise they remain non-critical but likely have less slack time.

    You can't format the two critical paths differently.


    Rod Gill
    Author of the one and only Project VBA Book
    www.project-systems.co.nz

    Saturday, July 9, 2016 1:38 AM
  • What you get as critical depends on how you have linked in all of the predecessors and successors.

    Does every task have at least one FS0 predecessor and at least one FS0 successor?

    With "show multiple critical paths" turned on, remove all successors of the milestone.

    That is all that is needed to see the critical path to the milestone.

    Any help?

    Saturday, July 9, 2016 1:51 AM
  • Rod,

    If the user sets a flag for those tasks on the critical path to the special milestone, then they can set up a separate 2nd critical path Gantt Bar color. It would take a little extra manual effort to set the flag but they would have what they want.

    John

    Saturday, July 9, 2016 1:55 AM
  • [I just provided this answer to Mollie's identical question over at MPUG]

    Mollie,

    In MSP 2013+:

    1. Use the "Task Path" dialog to graphically highlight the "driving" path to any milestone of interest.  Then create and manually-set a custom flag field for that path.

    2. Add a custom-colored bar style for each path that you want to show, including your new custom flag field in the "Show for" column.  You'll probably also want to turn off the "Critical" bar styles by un-checking the "Critical Tasks" box on the format ribbon.

    3. Note that some tasks are likely to be included on multiple driving paths.  They will be colored according to whichever competing bar style is lower on the list.

    In Pre-MSP 2013

    1. Remove all deadlines and late (i.e. "no later than") or mandatory (i.e. "Must") constraints.

    2. For each key milestone that you need the driving path for:

       a. Set a new deadline far in advance of the existing (early) date (e.g. 100d-1000d depending on the total slack in the project.)

       b. Re-schedule the project.  You'll get a lot of negative total slack values.

       c. Apply a filter for the most-negative "Total Slack" value. Then create and manually set a custom flag field for the filtered tasks.

       d. Remove the deadline.

    3. After evaluating all the key milestones, restore legitimate deadlines and constraints.

    4. Color bars the same as above.

    Limitations:

    1. Logical driving/critical paths are not static - they can change with each progress update or minor modification to the schedule.  You'll need to re-run the methods above each time the schedule is modified, which can be click-intensive and error-prone.

    2. I haven't used the Task-Path methodology above (I'm still on MSP2010), so I can't vouch for its use.  Prior MSP methodology for identifying driving predecessors has been unreliable however.

    3. If your project includes variable task or resource calendars, then Total Slack becomes unreliable as an indicator of driving logic.  There are some commercial add-ins that overcome this limitation and the one above.

    4. If your project includes resource leveling, neither method above will accurately describe the critical path, and some results can be very misleading. I wrote an add-in that overcomes this limitation (and the preceding ones), but it is not commercially available.

    Note: "Multiple Critical Paths" option sets Total Slack to zero for all open-ended paths (i.e. terminating at a task with no successors and no late constraints or deadlines.)  I never use it.

    Good luck, tom

    Saturday, July 9, 2016 3:00 PM
  • I thought of that, but typically many tasks will be on two or more of the critical paths.


    Rod Gill
    Author of the one and only Project VBA Book
    www.project-systems.co.nz

    Saturday, July 9, 2016 10:23 PM
  • Hi Tom,

    Thank you for the information.  I am using MS Project 2013 so I was looking at the driving predecessors method and I think it is closest to what I need.  However, even though I can highlight the path due to the large number of tasks in my project I can not see what the actual tasks are.  Do you know of anyway to filter to show just the driving predecessors tasks?  I would love to be able to print a report of the "critical" path to a task.

    Thanks again!

     

    Tuesday, July 12, 2016 8:07 PM
  • Spirito96,

    Maybe I'm missing something but why not just apply the Critical filter.

    John

    Wednesday, July 13, 2016 1:52 AM
  • John,

    Doesn't that just show you the critical items to the overall project schedule?  I need it to a date in the middle of the project.

    Thanks!

    Wednesday, July 13, 2016 2:47 PM
  • Spirito96,

    Unfortunately I don't have Project 2013 so I can't advise you whether the Task Path utility does what you need. The only other option I know is a Trace macro developed by Jack Dahlgren several years ago. It used to be available on his website at masamiki.com but I don't know how to get to it. Maybe somebody else has more insight.

    John

    Wednesday, July 13, 2016 4:19 PM
  • Okay,

    1. select your task then select Format, Task Path, Driving Predecessors then run the following macro:
    Sub DrivenFilter()
    Dim Tsk As Task
        For Each Tsk In ActiveProject.Tasks
            If Not Tsk Is Nothing Then
                If Tsk.PathDrivingPredecessor Then
                    Tsk.Flag1 = True
                Else
                    Tsk.Flag1 = False
                End If
            End If
        Next Tsk
    End Sub
    

    Then filter for the custom field Flag1=Yes and I think you have what you want.

    If you already use Flag1 for something else, edit the code to use any of the other Flag fields you don't use.


    Rod Gill
    Author of the one and only Project VBA Book
    www.project-systems.co.nz

    • Proposed as answer by Julie Sheets Sunday, July 17, 2016 5:10 PM
    • Marked as answer by Julie Sheets Tuesday, July 19, 2016 4:39 PM
    Wednesday, July 13, 2016 10:59 PM
  • Thank you, that is VERY helpful!  I think that will help get us what we need.


     
    Monday, July 18, 2016 10:23 PM