View to display available tasks only? RRS feed

  • Question

  • I have the kind of job in which I'm working on, and responsible for, many items at once, often completely unrelated. It's far too frenetic and unpredictable an environment to manage my work as an actual project plan with resource allocations and estimated durations. What I really need is a tool like OmniFocus, which I use at home for personal tasks. The key features I need are:

    • The ability to define whether a given task has a predecessor (I know MS Project obviously does this)
    • The ability to see only AVAILABLE tasks (i.e. what I can work on NOW, because its predecessors are already complete)

    I couldn't find a view in MS Project (we're using 2010) that shows me the list of things that are available for me to work on now, but that doesn't mean it doesn't exist in there somewhere. Any advice would be greatly appreciated.

    In case I wasn't clear (no need to read on if you get it), here's a silly, illustrative example:

    Say I have two overall tasks, with sequential tasks as shown below

    1. Wash laundry
      -Put laundry in washer
      -Add detergent
      -Start washer
      -Put clothes in dryer
      -Fold clothes
      -Put clothes away
    2. Paint the living room
      -Purchase painting supplies
      -Move furniture away from the walls
      -Put drop-clothes down on the floor
      -Paint edges with a brush
      -Paint walls with a roller
      -Clean brushes and rollers
      -Wait for paint to dry
      -Put furniture in its place

    In this scenario, at the start, I need a view that makes it easy for me to find the two tasks available to me, which are:

    • Put laundry in washer
    • Purchase painting supplies

    As I mentioned, I use Omnifocus for this and it's almost perfect for me, but I'm in a Windows environment at work so that's out of the question. Any thoughts on how to make MS Project do this, or even on an alternative, would be greatly appreciated.

    Wednesday, November 15, 2017 7:04 PM

All replies

  • Task Name

    Duration Start Finish Predecessors Resource Names
    Project2 495 mins 16/11/17 08:00 17/11/17 08:15
       Wash laundry 40 mins 16/11/17 08:00 16/11/17 08:40
          Put laundry in washer 10 mins 16/11/17 08:00 16/11/17 08:10 Person
          Add detergent 5 mins 16/11/17 08:10 16/11/17 08:15 2 Person
          Start washer 0 days 16/11/17 08:15 16/11/17 08:15 3 Person
          Put clothes in dryer 5 mins 16/11/17 08:15 16/11/17 08:20 4 Person
          Fold clothes 5 mins 16/11/17 08:20 16/11/17 08:25 5 Person
          Put clothes away 15 mins 16/11/17 08:25 16/11/17 08:40 6 Person
       Paint the living room 495 mins 16/11/17 08:00 17/11/17 08:15
          Purchase painting supplies 60 mins 16/11/17 08:00 16/11/17 09:00 Person
          Move furniture away from the walls 15 mins 16/11/17 09:00 16/11/17 09:15 9 Person
          Put drop-clothes down on the floor 15 mins 16/11/17 09:15 16/11/17 09:30 10 Person
          Paint edges with a brush 30 mins 16/11/17 09:30 16/11/17 10:00 11 Person
          Paint walls with a roller 60 mins 16/11/17 10:00 16/11/17 11:00 12 Person
          Clean brushes and rollers 15 mins 16/11/17 11:00 16/11/17 11:15 13 Person
          Wait for paint to dry 240 mins 16/11/17 11:15 16/11/17 16:15 14
          Put furniture in its place 60 mins 16/11/17 16:15 17/11/17 08:15 15 Person
    Wednesday, November 15, 2017 8:56 PM
  • Plan your tasks, set task dependency relationships in the schedule, and then set task Durations.  Each week, apply the Tasks Starting Soon filter.  Hope this helps.

    Dale A. Howard [MVP]

    Wednesday, November 15, 2017 9:15 PM
  • Dale,

    Pardon me for bumping in. Maybe later versions of Project do have a "Tasks starting soon" filter but Project 2010 does not. There is a "Tasks starting soon" report which uses the Date Range filter. However to really do what the user wants I can't think of any field customization or filters that would work. It could however be done with a very simple Open Event macro that checks a task's predecessor to see if it is complete and then set a flag on the successor task if it is not yet started.


    Thursday, November 16, 2017 12:16 AM
  • Forgive me if I am way off what you seek, but, what about this...

     Does it or would it help organize at all were you to use different (virtual) desktops for each different project; and set the taskbar to only highlight the items for each individual desktop, only.. But, the desktops would be dedicated and specifically exclusive to pertinent things, only.

    Like I said, if I'm way off on a wrong planet, just ignore.  It's just a thought, however silly it may be 😉


    Drew - IT Pro / MS Partner/Partner Company / Windows Insider / Owner - Computer Issues

    Thursday, November 16, 2017 12:28 AM
  • Hi John,

    I think you've nailed this one.  For the less gifted of us, do you think you could provide the VBA please?  I think that this could be generally useful to provide as a Macro.

    Ben Howard [MVP] | web | blog | book | P2O

    Thursday, November 16, 2017 10:09 AM
  • To those following this thread,

    The first screen shot shows the sample file used for this demonstration. The object is to identify tasks 3 and 8 as being "available to start" since all of their predecessor tasks are 100% complete. It could be argued that task 8 isn't really ready to start since it has a 5d lag but based strictly on the status of it's predecessor, it is "available" to start. The Flag1 field is used as the identifier.

    Once the available tasks are identified, the following filter will display them along with their respective summary lines which may be helpful in providing context for the tasks.

    So how can we do this? Neither a custom field with a formula nor a filter by itself will work since neither can query the status of predecessor tasks. The solution is a simple VBA macro using the Open Event. Any time the file is opened, the code will execute and set the appropriate task flags so that when the filter is applied the result will be as shown below.

    Note, if desired the code can be set up as a normal procedure (i.e. not event driven) that could be "run on demand" via a custom ribbon button.

    Here is how to set up the code as an Event driven procedure. To make it easier to create the code, copy and paste the code below into the VB Editor window as indicated in step 5

    Private Sub project_open(ByVal pj As MSProject.Project)
    'This module checks task predecessors to see if they are complete.
    '   If all predecessor tasks are complete, Flag1 is set such that
    '   filtering for Flag1 will show all tasks "available to start"
    'Written by John-Project 11/16/17
    Dim t As Task, pred As Task
    Dim Rdy As Boolean
    For Each t In ActiveProject.Tasks
        If Not t Is Nothing Then
            'initialize variables
            Rdy = False: t.Flag1 = False
            If t.Summary = False And t.PredecessorTasks.Count > 0 Then
                For Each pred In t.PredecessorTasks
                    If pred.PercentComplete = 100 Then
                        Rdy = True
                        Rdy = False
                    End If
                Next pred
                If Rdy = True Then t.Flag1 = True
            End If
        End If
    Next t

    End Sub

    Hope this helps someone.


    Thursday, November 16, 2017 9:28 PM
  • Thanks for sharing, John.  I for one had never used an Open event, and this appears much easier than Rod had implied in his book.  I may have to experiment.
    Thursday, November 16, 2017 9:58 PM
  • Tom,

    You're welcome. The Open, Close and Calculate Events are all project level events and are very straightforward to implement. The application level events are more challenging as they require class modules.

    I rarely use Events, but they do sometimes just "fit the bill".


    Friday, November 17, 2017 1:48 AM