Tips and Techniques on Project Planning, Scheduling and Management by using MS Project

 

 Please first see Disclaimer section at the bottom. This document's content is related to the standalone desktop editions of Project. 

 

 

 

Courses

 

Mastering Custom Field Formulas in MS Project (offered globally) - 1 day

A one-day on-site course for the advanced users of the desktop versions/editions of MS Project - click banner for details...

 

 

 

 

eBook - Mastering Custom Field Formulas in MS Project

 

Visit the eBook website here for more information on the eBook and for the articles on the Custom Field Formulas

 

 

eBook - Using MS Project's Built-in Functions in Formulas

 

Visit the eBook website here for more information on the eBook

 

 

 

 

 

Articles

 

 

 

 

Frequently Asked Questions

 

 

 

 

Groups

 

 

        

 

 

 

Visual Materials

 

 

 

 

Tips on MS Project

 


Tip List

 

"All versions" represents Project 2007, Project 2010 and Project 2013, although the tips mostly apply to Project 2003 as well. Click any link below to jump to a tip.

Common Misconceptions on MS Project

Keyboard Shortcuts (all versions) - Click <F4>+<T> on the keyboard to quickly enter today's date into any date field in a table

Using the mouse to indent or outdent task(s) (all versions)

Keyboard Shortcuts (all versions) - Using the function key F2 while inputting information into a cell

Using the mouse to increment or decrement the duration value (all versions)

How to display a custom field's data in a graphical report (Project 2013 desktop)

A quick way to see a formula entered to a custom field (Project 2010 and Project 2013 desktop)

Getting a list of all custom field formulas (Project 2013 desktop)

Just for fun - Flag field with emoticons (all versions) - A demonstration on how a dynamic link (OLE link) between two fields of the same project plan works

How to display a progress indicator by using a custom dialog box or the status bar while running a macro performing a repetitive task (all versions)

Generate an Excel report of the predecessors and the successors of the "Marked" tasks in VBA. (all versions)

Defining a Working Time Pattern (Recurring) for a Task that can only be performed on the second Thursday of every Month and between 08:00 pm and 09:00 pm (Project 2010 and Project 2013 desktop)

Use the keyboard shortcut <Ctrl+D> in order to quickly fill down the fields with the data selected in a table (all versions)

How to display Baseline Milestone Tasks on the Timeline (Project 2010 and Project 2013 desktop)

A simple formula to check to see whether a resource's calendar differs from the project calendar (all versions)

How to filter for tasks that do not start at 08:00 AM and finish at 05:00 PM (all versions)

How to use a custom image to represent a milestone in the Gantt graph (all versions)

How to show Physical % Complete bars on the task bars (all versions)

How to format individual Gantt Chart bars, based on a resource assigned (all versions)

Highlight the predecessors of a task in the task table of the Gantt Chart view (Project 2013 desktop or later)

How to display the project related information of an MS Project file without opening it (all versions)

How to display the task count without opening the MS Project file (all versions)

How to see the Revision number and Last saved by information of an MS Project file without opening it (all versions)

A simple RAG Indicator without a formula (all versions)

How to restore a custom table modified to the original one automatically (Project 2010 desktop)

Project may use a title name different than a field's name in a table (all versions)

Be careful while grouping the project data in a filtered table (all versions)

Formula to find tasks with four or more predecessors (all versions)

5 et 3 ça fait combien ? (all versions)

How to create a "Tasks Due Today" filter that automatically gets the Current Date (Project 2013 desktop or later)

How to display dates in two different formats in a table (all versions)

How to use the task calendars to schedule the work of two teams based on 12-hour shifts (all versions)

How to remove a soft constraint quickly (all versions)

How to split a task by using the mouse (all versions)

Some Date-Related Custom Field Formulas for Month, Year, Year to Date

Show Dates on the Gantt Bars (all versions)

About the Formula Logic

Using the flag field Summary

The fastest way to split a view in Project 2016

 

 


Tip #0 Ÿ Common Misconceptions on MS Project (for desktop versions/editions)

 

MS Project can be easily learned by trial and error: Do not attempt to learn MS Project by trial and error as you go. Instead, take a formal training course, or take your time to study the books written by the experts. Otherwise you will later spend much more time and effort to correct the misinterpretations learned by trial and error on how MS Project operates. This is also true with MS Excel unless you intend to use it just as a simple calculator. 

MS Excel can be used for project management in place of MS Project: There is a common misconception that MS Project is similar to MS Excel since both are Office applications. Both applications have some common user interface elements but they are different; MS Excel is an advanced spreadsheet application and lacks a scheduling engine which MS Project includes by design. You can draw a Gantt Chart with MS Excel but it will be static. Besides a project plan is not just a Gantt Chart. A Gantt Chart is only a tool among many others, used to represent the project data in both tabular and graphical form. You can plan and track a project's cost data in MS Excel but you must update all the data manually at anytime when the related cost drivers in the project change. MS Excel is a good companion to MS Project while evaluating and reporting the project's status.

The features of MS Project are not intuitive and the elements of the interface are not self-explanatory: This is not a result of an inadequate design but the result of the fact that the scheduling engine’s operations on the background are based on the project management methodology. You must also know this methodology, otherwise it will not be possible to understand the function of these controls/elements.

MS Project behaves inconsistently: MS Project does not have any intelligence and cannot make any assumptions/decisions but uses pre-defined defaults whenever it is required. MS Project never demonstrates random behavior while calculating the schedule. It repeats the exact same behavior consistently in all identical scheduling scenarios. This consistent behavior is based on scheduling rules, developed over years, converted to algorithms implemented in the scheduling engine running on the background.

No need to fully understand how MS Project works before starting to use it in a real project environment, I can learn it on the job anyway while using it in the next project: If you do so, you cannot benefit from its advanced features so as to plan, schedule and manage your projects effectively and efficiently, and in a way satisfying the triple constraints (or the ones that have priority in your project) throughout all the phases of the project. As a result, the schedules that you create in MS Project may not represent correct model of the project. Most important of all, you may not be able to control MS Project's behavior while calculating the schedule after any change that occurs in the scheduling parameters. Thus, failure becomes unavoidable in an attempt to manage a project with an incorrect model that you cannot even control.

 

Tip #1 Ÿ Keyboard Shortcuts (all versions) - Click <F4>+<T> on the keyboard to quickly enter today's date into any date field in a table - See it here.

Tip #2 Ÿ Using the mouse to indent or outdent task(s) (all versions) - See it here.

Tip #3 Ÿ Keyboard Shortcuts (all versions) - Using the function key F2 while inputting information into a cell

In order to quickly set focus to a cell and highlight its content at the same time, just click the cell and hit <F2> on the keyboard. Note that entry bar is no longer available in Project 2013's dialog boxes (desktop editions), therefore, you might find using the F2 key more practical than clicking the cell multiple times to start an entry.

Tip #4 Ÿ Using the mouse to increment or decrement the duration value (all versions) - See it here.

Tip #5 Ÿ How to display a custom field's data in a graphical report (Project 2013 desktop) - Watch this video to see how. This is a no-narration video but you will hear the mouse clicks.

Tip #6 Ÿ A quick way to see a formula entered to a custom field (Project 2010 and Project 2013 desktop)

Use the following subroutine to display the formula in a custom field.

 

' © Ismet Kocaman

'

Sub Show_Formula()

       If Application.CustomFieldGetFormula(ActiveCell.FieldID) <> "" Then
          MsgBox Title:="Field: " & ActiveCell.FieldName, Prompt:= _

          Application.CustomFieldGetFormula(ActiveCell.FieldID)
       Else
          MsgBox Title:="Field: " & ActiveCell.FieldName, Prompt:= _

          "No Formula"
       End If
End Sub

 

Steps to add the subroutine to a project plan file:
- Open a blank mpp file and save it with a new name, say <ShowFormula.mpp>
- Click <Alt + F11> to open Visual Basic Editor
- Click VBAProject(ShowFormula.mpp) on the left and open the Insert menu from the menu bar, click Module to insert a module
- Click Module1 (or the module inserted) on the left, and copy the subroutine above and paste it into the Module1 window on the right
- Close Visual Basic Editor

 

Steps to add a button for the subroutine to the QAT
- Click File tab, select Options to display the Project Options dialog box
- Click Quick Access Toolbar, and select Macros in the Choose commands from drop-down.
- Select ShowFormula.mpp|Show_Formula on the left and click Add >> buttom in order to add ShowFormula.mpp|Show_Formula to the command list in

  the Customize Quick Access Toolbar box on the right. Use Modify to select any icon that you like and enter a display name for the subroutine
- Click OK to close the Project Options dialog box.

 

Now the icon for the subroutine will appear on the QAT. Click a custom field containing a formula and then click the button for the Show_Formula to see how it works.

 

   

 

Tip #7 Ÿ Getting a list of all custom field formulas (Project 2013 desktop)

 

Use the following subroutine to create a report listing all the custom field formulas in a project plan file. Follow the same steps as given in Tip #6 to add the subroutine to a project plan file.

 

' © Ismet Kocaman

'

Sub ListCustomFieldFormulas()
       
    Dim R As Report
    Dim S As Shape
    Dim L As Long
       
    Set R = ActiveProject.Reports.Add("List of All Custom Field Formulas") 'Enter a new name if the report exists
    Set S = R.Shapes.AddTextbox(msoTextOrientationHorizontal, 10, 10, 1000, 10)
       
    S.TextFrame2.AutoSize = msoAutoSizeShapeToFitText
    S.TextFrame2.TextRange.Characters.Font.Name = "Courier"
 
    S.TextFrame2.TextRange.Characters.Text = "Task Custom Field Formulas"
    ListAll S, pjCustomTaskText1, pjCustomTaskText30, "Task Custom Field Formulas"
   
    L = S.TextFrame2.TextRange.Characters.Count
    S.TextFrame2.TextRange.Characters(L).InsertAfter vbCrLf & vbCrLf & "Resource Custom Field Formulas"
    ListAll S, pjCustomResourceText1, pjCustomResourceText30, "Resource Custom Field Formulas"
   
End Sub

Sub ListAll(S As Shape, Field_Start As Long, Field_End As Long, Title As String)

    Dim i, L As Long
   
    L = S.TextFrame2.TextRange.Characters.Count
    S.TextFrame2.TextRange.Characters(L).InsertAfter vbCrLf & String(Len(Title), "-")
   
    For i = Field_Start To Field_End
        If Application.CustomFieldGetFormula(i) <> "" Then
            L = S.TextFrame2.TextRange.Characters.Count
            S.TextFrame2.TextRange.Characters(L).InsertAfter vbCrLf & FieldConstantToFieldName(i) & _
            "(" & Application.CustomFieldGetName(i) & "): " & _
            Application.CustomFieldGetFormula(i)
        End If
    Next i
End Sub

 

 

You can select the formula list in the report, reformat it, copy it, and then paste it into some other document. Also you can print or create a pdf of the formula list. Note that the formula list will not be updated automatically if formulas or custom field names change later on. In this case, you need to generate the report again. A message box, Immediate window or Notes field of any task (as shown below) can also be used to store or display the list of formulas. 

 

The following subroutine works with all versions.

 

' © Ismet Kocaman

'

Sub ListCustomFieldFormulas_Notes()

    Dim Str As String

    Str = "-- Task Custom Field Formulas" & vbCrLf
    ListAll Str, pjCustomTaskText1, pjCustomTaskText30

    Str = Str & vbCrLf & "-- Resource Custom Field Formulas" & vbCrLf
    ListAll Str, pjCustomResourceText1, pjCustomResourceText30

    If ActiveCell.Task.Notes = "" Then
       ActiveCell.Task.Notes = Str
       Debug.Print ActiveCell.Task.Name & ": See Notes field..."
    Else
       Debug.Print ActiveCell.Task.Name & ": Notes field is not empty..."
    End If

End Sub

Sub ListAll(Str As String, Field_Start As Long, Field_End As Long)

    For i = Field_Start To Field_End
        If Application.CustomFieldGetFormula(i) <> "" Then
           Str = Str & FieldConstantToFieldName(i) & "(" & Application.CustomFieldGetName(i) & "): " & _
           Application.CustomFieldGetFormula(i) & vbCrLf
        End If
    Next i
End Sub

 

Important Note

Use caution when testing the subroutines above and always work on copies of the original project plan files.

 

 

Tip #8 Ÿ Just for fun - Flag field with emoticons (all versions) - A demonstration on how a dynamic link (OLE link) between two fields of the same project plan works

 

Follow the steps below to create a flag field with emoticons:

- Enter the formula iif( [Flag2]; No ;Yes ) to the Flag1 field.

- Define graphical indicators for Yes and No values in the Flag1 field (e.g., yellow smiling face for Yes and yellow frowning face for No)

- Right-click the Flag1 cell and select Copy Cell on the shortcut menu, then right-click the Flag2 cell and select Paste Special | (o) Paste Link | OK

Now the Flag1 field will start flip-flopping between two emoticons selected for Yes and No. And at the same time, a little gray flag will appear on the bottom right corner of the Flag2 cell. It indicates that the field has a dynamic link. Also see the help article for the Linked Fields field.

 

 

- Now save and close the file; then Project will ask whether you want to re-establish the link when you reopen the file. If you select No, Project will keep the link but not update it.

You can later use the Links dialog box to update the link (insert Edit Links command to the Quick Access Toolbar to use it. Project 2007 and earlier versions: Edit | Links...).

In the Links dialog box, you can select the link and click Break Link to break the link. Or you can select (o) Manual to stop flip-flopping.

In order to remove the link and clear the content in the cell, just right-click the Flag2 cell and select Clear Contents on the shortcut menu and then hit Yes.

 

Also see the following Project level (or application level) settings on the Advanced tab of the Project Options dialog box:

Clear this checkbox not to see the dialog box while opening the file:   (Edit) [ ] Ask to update automatic links (Project 2007 and earlier: Tools | Options | Edit)

Clear this checkbox to hide the gray flags for dynamic links:   (Display) [ ] Show OLE links indicators (Project 2007 and earlier: Tools | Options | View | [ ] OLE links indicators)

 

Try the following formula in the Flag1 field, and also set the graphical indicators as follows: a white button (or just leave it empty) for Yes and a red button for No

 

iif( [Flag2] And [Finish Variance]> 2*[Minutes Per Day]; No; Yes)

 

Flag1 field will start blinking as soon as the finish variance for the task with linked fields exceeds 2 days.

Project will also update the Status Bar continuously during the process. Although this may not be a good idea, you can hide it from the Project Options dialog box (Advanced | (Display) [ ] Show status bar) or disable the related items on the Customize Status Bar menu (right-click on the status bar to open it).

 

Note that you can create OLE links to the data in the other project plan files or in the files created by the other Office applications such as Excel.

--

Important Note - The tip discussed above will serve only the purpose of demonstrating how a dynamic link between two fields of the same project plan works. Besides it would be rather difficult to maintain such dynamic links in real project environment. Therefore, use it only for demonstration purposes in a blank project plan file. Having said that, the formula iif( [Finish Variance]> 2*[Minutes Per Day]; Yes; No), using a red flag image for Yes (see below), will provide an adequate visual alert, in case the finish variance exceeds 2 days for any task. 

 

 

Note that the criterion defined for No in the second line of the dialog box above is redundant since the Image cell is blank, so you can just delete the second line.

--

 

Tip #9 Ÿ How to display a progress indicator by using a custom dialog box or the status bar while running a macro performing a repetitive task (all versions)

 

The following subroutine adds 1000 tasks to the project plan and also shows the progress during the process by using the status bar and a custom dialog box.

 

' © Ismet Kocaman

'  

Public Toggle As Integer

 

Sub StartDemo()

    frmProgress.Show

End Sub

 

Sub Progress_Indicator_Demo()

   

    Dim Counter As Long

    Dim NoOfTasksToAdd As Long

   

    Toggle = 1

    NoOfTasksToAdd = 1000

    Counter = 0

 

    Application.ScreenUpdating = True

   

    frmProgress.LabelProgress.Width = 0

    Do While Counter < NoOfTasksToAdd

        

        'Insert your macro here

        ActiveProject.Tasks.Add "Task Name_" & Counter

 

        With frmProgress

            .Caption = Format(Counter / NoOfTasksToAdd, "0 %") & " Complete..."

            .FrameProgress.Caption = Format(Counter / NoOfTasksToAdd, "0 %")

            .LabelProgress.Width = Counter / NoOfTasksToAdd * (.FrameProgress.Width - 2)

        End With

 

        Application.StatusBar = Format(Counter / NoOfTasksToAdd, "0 %") & " Complete..."

        DoEvents

        Counter = Counter + 1

      

        If Toggle = 0 Then Exit Do

    Loop

   

    Unload frmProgress

    Application.StatusBar = False

End Sub

 

Code for frmProgress (see the picture above):

Private Sub UserForm_activate()
        Call Progress_Indicator_Demo
End Sub

Private Sub CommandButton1_Click()
        Toggle = 0
End Sub
 

Watch the no-narration video here to see how it works.

 

Important Note

The technique using the custom dialog box is based on John Walkenbach's article here at http://spreadsheetpage.com/index.php/tip/displaying_a_progress_indicator/

--

 

Tip #10 Ÿ Generate an Excel report of the predecessors and the successors of the "Marked" tasks in VBA. (all versions)

 

See the related discussion here to view the code.

 

 

 

Tip #11 Ÿ Defining a Working Time Pattern (Recurring) for a Task that can only be performed on the second Thursday of every Month and

between 08:00 pm and 09:00 pm (Project 2010 and Project 2013 desktop)

 

Follow the steps below:

- Suppose that the project starts on 01Jan15 and ends on 02Dec15.

- Create a copy of the project calendar by using the Change Working Time dialog box in order to use as a task calendar representing the task's working time pattern.

- Make sure the For calendar: box shows the new task calendar. Click Work Weeks tab, then click Details when the default work week [Default] is highlighted. 

- In the dialog box opened (Details for '[Default]'), set all the days to nonworking time but leave just one of the days with default settings (except for Thursday); for example,

  set Sunday, Tuesday, Wednesday, Thursday, Friday, Saturday to nonworking time but leave Monday as it is (default working time). Otherwise, (that is, when we set all the

  days to nonworking in the default work week) Project will not allow the operation and display the error message "You must have at least one working day in the calendar.".

  Note that it is also possible to define a new work week just below the default one with all days nonworking between the project start and end dates, and this will make the

  work week customization more visible.

- Click OK and close the dialog box. Now the calendar in the Change Working Time dialog box will show only Mondays with a white background.

- Next, define two exceptions: Exception #1 - Mondays NonWorking and Exception #2 - Thursdays Working

- Click Exceptions tab. Enter the 1st exception between the project start and end as follows:

 

- Enter the name Mondays NonWorking.

- Enter the date 01/01/2015 into the Start box and leave the Finish box as it is.

- Click Details, the dialog box will open with Nonworking option selected; keep this selection and select Weekly and Monday, then enter 12/02/2015 to the End by: box.

- Click OK to close the dialog box.

- Now the calendar in the Change Working Time dialog box will show Mondays with a dark-cyan background, meaning nonworking exception days.

- Now enter the 2nd exception between the project start and end as follows:

 

- Enter the name Thursdays Working.

- Enter the date 01/01/2015 into the Start box and leave the Finish box as it is.

- Click Details, the dialog box will open with Nonworking option selected; now select the Working times: option and enter a single range From 20:00 To 21:00

- Delete any other working time ranges. Now select Montly and then select The Second Thursday of every 1 months.

- Then enter 12/02/2015 to the End by: box. Click OK to close the dialog box.

- Now the calendar in the Change Working Time dialog box will show Thursdays with a light-cyan background, meaning working exception times.

- Just reopen the Details dialog box for the 1st and 2nd exceptions; the End after: box will show 48 and 11 occurrences, respectively. 

- Click OK to close the Change Working Time dialog box.

 

For testing: enter a 1-day task and apply the task calendar defined above to the task; then, for example, the task will start on Thu 01/08/15 8:00 PM and end on Thu 08/13/15 9:00 PM, with 8 occurrences.

 

Tip #12 Ÿ Use the keyboard shortcut <Ctrl+D> in order to quickly fill down the fields with the data selected in a table (all versions) - See it here.

 

Some other methods to replace or copy the data in a table:

  • Use the Replace command (TASK | (Editing)Replace) to locate and replace the data quickly in a table.

  • Drag the fill handle down to copy the selected data to the consecutive cells in the rows below.

 

 

Tip #13 Ÿ How to display Baseline Milestone Tasks on the Timeline (Project 2010 and Project 2013 desktop)

 

Click the first picture below to see how to display baseline milestones along with the current ones on a timeline. You can modify the formula in Text1 field as shown below, to include the finish variances in the baseline milestone task names.

 

     iif( [Milestone] And Not ([Name] Like "*BL(*"),"BL("  &  [Finish Variance]/[Minutes Per Day]  &  "d) - " & [Name],"")

 

For example, "BL(3d)" indicates 3 days of delay. Note that the method suggested below is a workaround, not a documented method. You need to maintain the views manually when you update the associated baseline and/or the key milestone list changes.

 

   

 

 

Tip #14 Ÿ A simple formula to check to see whether a resource's calendar differs from the project calendar (all versions)

 

The following resource custom text field formula can be entered to a resource custom text field, for example, Text1, and the results can be displayed by inserting the Text1 field's column to the Entry table in the Resource Sheet view: 

 

     iif ( ProjDateDiff( [Project Start]; [Project Finish]; [Name] ) = ProjDateDiff( [Project Start];[Project Finish];[Project Calendar] );  "";

     “Check Resource Calendar” )

 

Use [Base Calendar] in the formula instead of [Project Calendar], if there are resources whose calendars are not based on the project calendar.

 

 

 

Tip #15 Ÿ How to filter for tasks that do not start at 08:00 AM and finish at 05:00 PM (all versions)

 

Enter the following formula to a custom flag field, for example, Flag1 and then filter for tasks whose Flag1 field does not display Yes: 

 

 

     Format( [Start], "hh:nn AMPM" ) & " " & Format( [Finish], "hh:nn AMPM" ) Like "08:00 AM 05:00 PM"

 

 

The filter will also work for manually-scheduled tasks whose Start and Finish fields contain valid dates.

 

 

Tip #16 Ÿ How to use a custom image to represent a key milestone in the Gantt graph (all versions)

 

The Bar Styles dialog box contains a set of images to use while displaying milestones in the Gantt graph. If you want to use a custom image for this purpose, then follow the steps below:

  • Create the image by using a picture editing software. For example, here, we will use this image:

  • Copy the custom image to the clipboard and then paste it into the graph part of the Gantt Chart view.

  • Right-click on the custom image and select the Properties command; and then enter the task ID of the milestone to the ID box under the Attach to task option on the Size & Position tab of the dialog box just opened. Click OK to close the dialog box.

  • Now drag the custom image by the mouse to reposition it over the key milestone. In order to check whether it moves along with the key milestone, change the duration of the predecessors and create new upstream tasks on the dependency path of the key milestone.

This is how our sample schedule looks like:

 

 

Note that the custom image hides the arrow tips of the dependency links.

Tip #17 Ÿ How to show Physical % Complete bars on the task bars (all versions)

 

Just insert a PHYSICAL % COMPLETE line to the Bar Styles dialog box as shown below. Note that Project does not draw a PHYSICAL % COMPLETE bar if the Actual Start is NA.

Click here to see the details. 

 

 

Tip #18 Ÿ How to format individual Gantt Chart bars, based on a resource assigned (all versions)

 

Enter the formula Instr( [Resource Names], "name_of_the_resource" ) to a task custom flag field. Then add a task bar definition to the Bar Styles dialog box, containing the flag field. See the details in the picture here.

 

 

Tip #19 Ÿ Highlight the predecessors of a task in the task table of the Gantt Chart view (Project 2013 desktop or later)

 

Enter the macro below, set the background color for the Marked field to any color you want, assign the key combination <Ctrl+M> to the macro.
In order to test: click a task with predecessors, then press <Ctrl+M>, Project will highlight all the rows of the predecessors.
In order to clear: click a task line with no predecessors, press <Ctrl+M>.

You do not need to insert the Marked field to the table to use this macro. Apply AutoFilter to the Marked column if you want.
 

' © Ismet Kocaman

'

Sub Highlight_Predecessors()
    Dim T As Task

    HighlightPredecessors Set:=True
    For Each T In ActiveProject.Tasks
        If Not (T Is Nothing) Then
           T.Marked = T.PathPredecessor
        End If
    Next T
    HighlightPredecessors Set:=False
End Sub

 

Tip #20 Ÿ How to display the project related information of an MS Project file without opening it (all versions)

 

In the active project plan file, apply the proper command sequence to open the File Properties dialog box (in Project 2013, it is FILE | Info | Project Information | Advanced Properties).

On the Custom tab, enter a name for the information that you want to display, select a Type and select the checkbox Link to content; the Source box will display the project summary task fields that can be linked to the custom information specified in the Name box. Then click Add to include the custom information defined to the Properties box, finally click OK to close the dialog box and exit Project by closing the file. 

In order to test, locate the file on the computer and right-click its desktop shortcut or filename in the folder to open the File Properties dialog box.

The Custom tab will show the information that has just been added, even in a system with no MS Project installation.

 

 

Tip #21Ÿ How to display the task count without opening the MS Project file (all versions)

 

Follow the procedure described in Tip #20 to add the Contact field (Name: TASK COUNT, Type: Text, Source: Contact) to the Custom tab of the File Properties dialog box. In Project, enter the formula iif( [ID] = 0, [Task Count], 0 ) to the task custom number field Number20 (select Use formula). Next, open the Project Summary Task, right-click Number20 in the project summary row, select Copy Cell, then right-click Contact cell of the project summary task and apply Paste Special | Paste Link | OK. Now Contact field will display the task count of the project.

 

In order to test, locate the file on the computer and right-click its desktop shortcut or filename in the folder to open the File Properties dialog box.

The Custom tab will show the information that has just been added, even in a system with no MS Project installation. See below:

 

   

 

 

Tip #22Ÿ How to see the Revision number and Last saved by information of an MS Project file without opening it (all versions)

 

   

 

 

Tip #23Ÿ A Simple RAG Indicator without a formula (all versions)

 

You do not always need to create complex formulas to display graphical indicators in the custom fields. For example, the following formula contains two threshold dates to define indicator ranges that the dates in the Finish field are tested against:

 

Switch( DateValue([Finish]) <= #9/15/2017#,"Green", DateValue([Finish]) <= #12/15/2017#,"Amber", True,"Red")

 

  • It is Green if Finish is less than or equal to September 15th, 2017.

  • It is Amber if Finish is greater than September 15th, 2017, but less than or equal to December 15th, 2017.

  • It is Red for all the finish dates greater than December 15th, 2017. See the indicators defined here.

 

This formula can be entered to a custom text field and then green, amber and red graphical indicators can be defined for each one of the three possible text outputs. On the other hand, the same RAG Indicator column can be created without using this formula; see how to do it here.

 

 

Tip #24 Ÿ How to restore a custom table modified to the original one automatically  (Project 2010 desktop)

 

In a project environment where team members exchange project plan files, it is difficult to prevent the team members from modifying the customized elements such as tables, while working on the project plans. The following macro copies a custom table to any project plan file opened on the computer containing the Global.mpt with the macro. Follow the steps below in order to see how it works:
 

  • Create the new custom table (e.g., myTaskEntry) in the active project plan file.

  • Copy the new table from the active project plan file to the Global.mpt by using the Organizer dialog box. If the checkbox Automatically add new views, tables, ... in the Advanced tab of the Project Options dialog box is turned on, then Project automatically copies the new table to the Global.mpt.

  • Insert a module and copy the following code to the Global.mpt on your computer.

 

'

' © Ismet Kocaman

'

' Use at your own risk. The code below is provided "AS IS" with no warranty made as to technical accuracy and confers no rights.

 

Sub Auto_Open()

     

    Dim CurrentView As String
     

    'Save the name of the current view
    CurrentView = ActiveProject.CurrentView
    'Open a view with no table
    ViewApply Name:="Network &Diagram"
    'Avoid display of the dialog box while overwriting the myTaskEntry table in the local file
    Application.DisplayAlerts = False

    'Overwrite the myTaskEntry table in the local file with the original one from the Global.mpt
    OrganizerMoveItem Type:=1, FileName:="Global.MPT", ToFileName:=ActiveProject.Name, Name:="myTaskEntry"

    'Turn on the display of the alerts

    Application.DisplayAlerts = True

    'Switch back to the initial view
    ViewApply Name:=CurrentView

 

End Sub

  • Next, work on the file and send it to another project team member for the updates. The team member opens the project plan file on his/her computer and adds or removes columns from the myTaskEntry table while updating the schedule. The team member's computer does not have the macro above in the Global.mpt. Then he/she saves the file and returns it to you.

  • Now open the project plan file on your computer. Project will automatically copy the original custom table myTaskEntry from Global.mpt to the active project plan file while opening the file. Note that this action does not affect the project data shown in the table. 

 

Important Note - Use caution while testing the macro above and always work on copies of the original project plan files.

Note - Also see the following knowledgebase articles

 

Tip #25 Ÿ Project may use a title name different than a field's name in a table (all versions)

 

Sometimes the new users get confused with the field names, since Project's title name for the field in a table may be different than the field's actual name. As it is seen in the picture below, the title of the Cost field in the task table Cost is Total Cost.

 

 

The field list of the Insert Column command (right-click any column header to open) does not contain Total Cost since the actual field name is Cost. The quickest way to see the actual field name is to keep the mouse pointer over the column header; then the ScreenTip will show the actual field name in parentheses. 

 

See the Cost field inserted to the left of the Total Cost column.  Note that its title box is blank by default, so this time, we see its actual name in the table. Also see the Cost/Use column in the resource table Entry.

 

To change title of a field in a table: right-click column header, select Field Settings in the shortcut menu and use the Title box to enter your custom title. To make this change permanent, overwrite the Global task table Cost with the local one (be careful while dealing with the Global template).

 

 

Tip #26 Ÿ Be careful while grouping the project data in a filtered table (all versions)

 

Both the group and the task summary rows use the same roll-up options for the custom fields (See the Custom Fields dialog box), but they work differently when there is a filter applied to a table (click the demonstration below):
 

  • Project includes the hidden data (that is, the data filtered out) in calculations while rolling up the custom field's data in the task rows.

  • On the other hand, the hidden data is excluded when the custom field's data in the group rows are rolled up to the group summary rows (that is, group headers). If this is not what you want, then always verify that there is no filter applied to the table  (i.e., check the Status Bar) before applying a group.
     

 

 

Tip #27 Ÿ Formula to find tasks with four or more predecessors (all versions)

 

The following simple formula in a task custom flag field will set the field's value to Yes if a task has more than 3 (that is, 4 or more) predecessors:

 

[Predecessors] Like "*,*,*,*"

 

Change the delimiter symbol to semicolon (;) if your system does not use comma (,).

 

 

Tip #28 Ÿ 5 et 3 ça fait combien ? (all versions)

 

Have you seen Gérard Jugnot's great movie "Les choristes" ? The following is a dialogue from the movie:
 

 

Pépinot

Leclerc
Pépinot
Leclerc
Pépinot

 

- 5 et 3 ça fait combien?
- 53!
- T'es sûr?
- Ben, ouais!
- Merci

 

Read the paragraph below to see how this dialogue relates to Project:

 

Leclerc is correct if he is doing a string addition as in "5" + "3"; then the result would be the string "53". On the other hand, "5"+ 3 yields 8 since Project implicitly converts the text "5" to the number 5 and then performs the arithmetic addition operation. But the string concatenation operator & (that is, ampersand) guarantees a string addition, therefore "5" & 3 would result in the string "53". See how all three expressions work by entering each one as a formula to a custom text field.    

 

 

Tip #29 Ÿ How to create a "Tasks Due Today" filter that automatically gets the Current Date (Project 2013 desktop or later)

 

In Project 2013, we can easily create a filter that highlights the tasks due today in a project plan; and the steps are as follows:

  • On the VIEW tab, click the down arrow of the Filter box (the edit box with a funnel image, containing [No Filter] by default in the Data group) to display the drop-down menu and then select New Filter in the menu to open the Filter Definition dialog box.

  • Enter the name TASKS_DUE_TODAY and the lines representing the filtering criteria into the Filter Definition dialog box as it is seen below and click Save:

 

 Filter Name: Tasks Due Today

And/Or

Field Name

Test

Value(s)

 

Active

equals

Yes

And

Finish

equals

"Today is:"?

And

% Complete

does not equal

100%

And

Milestone

equals

No

 

Also keep the checkbox Show in menu selected since we want to see the custom filter listed in the Custom section of the filter drop-down menu.

The criterion <Finish equals “Today is:”?> tests whether the finish date is equal to the current date entered in the Project Information dialog box since the prompt string “Today is:”?evaluates to the Current Date field’s value in a filter; thus, the filter does not ask for today's date. 

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.

  • In order to test the custom filter just defined above; on the VIEW tab, click the down arrow of theHighlight box (the edit box with a highlight symbol, containing [No Highlight] by default in the Data group) to display the drop-down menu and then select TASKS_DUE_TODAY filter in the Custom section. The following picture shows a simple plan used to demonstrate how the filter works. Note on the vertical today’s date line marking the date “January 15th, 2015” on the Gantt graph:

 

 

We can filter the finish dates by selecting the predefined criterion “Today” from the Filters submenu of the AutoFilter menu opened from the Finish column’s header, but note that, that filter gets the today’s date from the computer’s clock instead of the Current Date field.

 

Important Note: This article was originally published here on 26th of July, 2013 in English. Then it was also included here to project copyright.

 

 

Tip #30 Ÿ How to display dates in two different formats in a table (all versions)

 

Follow the steps below:

 

  • Insert the Text1 field with the formula [Start] (or [Scheduled Start]) to the task table.

  • Set MS Project's date display format to one of the two week formats.

  • Change the date display format of the table to a regular one (e.g., to a format without weeks).

  • Hit <F9> to recalculate the field data.

 

You will see the dates in both regular and weekly formats as shown in the example below:

 

 

 

Tip #31 Ÿ How to use the task calendars to schedule the work of two teams based on 12-hour shifts (all versions)

 

The following schedule was created in response to a forum question. There are two teams working in two shifts, one being 7AM to 7PM and the other one being 7PM to 7AM. Each team works based on the pattern composed of 4 workdays followed by 2 days off. MS Project's features for editing the tasks on the tables enable us to build such a schedule quick and easy. See the picture here.

 

The other details: the task calendar for the shift of 7AM - 7PM is just from 7:00 AM to 7:00 PM, but the ranges in the default workweek for the other shift must be arranged as 12:00 AM - 7:00 AM | 7:00 PM - 12:00 AM in order to cover the whole working time range in the same shift from 7:00 PM of the current weekday to 7:00 AM of the next weekday. The project calendar is <24 Hours>, the project starts at 00:00 and the Hours per day should be 12 hours. The SNET-constrained milestones are used to control the starting date and time of the task sequences for the teams. And the 2-day lags represent the 2-day periods of the non-working times and there are no resource assignments. It is important to note that the total durations at the summary level do not give the total durations of the task sequences.

 

Tip #32 Ÿ How to remove a soft constraint quickly (all versions)

 

 

You can quickly remove a soft (i.e., flexible based on the direction of scheduling) constraint applied to a task as follows:

 

  • Clicking the Start cell of an auto-scheduled task in a task table and then hitting the key <Del> on the keyboard removes a SNET constraint applied to that task.

  • Likewise, clicking the Finish cell of an auto-scheduled task in a task table and then hitting the key <Del> on the keyboard removes a FNET constraint applied to that task.

 

If the direction of scheduling is "backward" (that is, the box Schedule from: in the Project Information dialog box is set to <Project Finish Date>) instead of "forward", the same actions above will also work for the SNLT and FNLT constraints, respectively. Also note that, pressing the key <Del> on the Constraint Type or Constraint Date field inserted to a task table will remove any non-default constraint (that is, any constraint other than ASAP or ALAP) applied to the related task.

 

Tip #33 Ÿ How to split a task by using the mouse (all versions)

 

See the picture here.

 

 

Tip #34 Ÿ Some Date-Related Custom Field Formulas for Month, Year, Year to Date (all versions)

 

The following formulas can be entered to a task custom flag field to check whether tasks’ start dates fall into a particular calendar period:

 

Period:

Test expression used as the formula:

Next Month

Month( [Start] ) = Month( [Current Date] ) + 1

This Month

Month( [Start] ) = Month( [Current Date] )

Last Month

Month( [Start] ) = Month( [Current Date] ) – 1

Next Year

Year( [Start] ) = Year( [Current Date] ) + 1

This Year

Year( [Start] ) = Year( [Current Date] )

Last Year

Year( [Start] ) = Year( [Current Date] ) – 1

Year To Date

[Start] Between DateSerial(Year( [Current Date] ), 1, 1) And [Current Date]

 

Note that in the formulas above, we must first verify that the Start field contains a valid date if the project schedule contains manually scheduled tasks; see the example below (enter to a task custom text field):

 

iif( Not IsDate([Start]),"No Date", iif( Month( [Start] ) = Month ( [Current Date] ) + 1, "Task #" & [ID] & " starts next month", “”))

 

See the section "Conversion and Date/Time functions" in the book for detailed descriptions of the functions used above. 

 

 

Tip #35 Ÿ Show Dates on the Gantt Bars (all versions)

 

Suppose that you want to see the task start dates on the left of the task bars along with the label “Start: ” by using a formula in the Text1 field. In this case, using the plus operator in the formula, as in “Start: “ + [Scheduled Start], will result in #ERROR. Therefore, you need to use & to force a string concatenation operation and thus to combine “Start: “ with the start date converted to a date string by MS Project.

 

The resulting formula “Start: “ & [Scheduled Start] works just fine, but this time, you will notice that the format of the dates displayed on the bars (and in the Text1 field) is different than that of the dates on the Start column in the task table; the output format appears to be the system's short date and long time format:

 


The Format function can be used to control the output format, and this time, the plus operator can be used to combine the strings: “Start: “ + Format( [Scheduled Start], “MMM d” ). And this is how it looks now: 

 

 

Tip #36 Ÿ About the Formula Logic (all versions)

 

 

Tip #37 Ÿ Using the flag field Summary (all versions)

 

 

 

Tip #38 Ÿ The fastest way to split a view in Project 2016

 

The fastest way is to use the following key sequence: just hit Alt, W, E and T on the keyboard to split a view (no need to keep the Alt key pressed while applying the shortcut). The same sequence toggles the action so repeat it to remove the split.

 

Alternatively, you can use the split bar button to quickly split a single-pane view horizontally to create a combination view. You can use this method to create a split if you do not want to switch from the current tab to the View tab. After the first split/unsplit operation, the split bar button will appear on the lower-right corner of the Project window, just below the vertical scroll bar (see below).

Simply, double-click or drag this button up to create a combination view. Note that when you keep the mouse pointer over the split bar button, or on the horizontal split bar between the top and the bottom panes, it becomes a split bar mouse pointer (two horizontal lines with arrows). Double-clicking the horizontal split bar or dragging it to the bottom of the screen removes the split. Some views do not show the split bar button (for example, the Calendar view). In this case you can use the shortcut to create a split.

 

Finally, you can add the Details checkbox to the Quick Access Toolbar to split a view without switching from the current ribbon tab to the View tab. There are some other controls related to the split views (or the combination views) that you can add to the QAT.

 

By default, splitting a task sheet view (a view that displays task information) opens the Task Form view in the bottom pane (e.g. if you split the Gantt Chart view, the Task Form view appears in the bottom pane); splitting a resource sheet view (a view that displays resource information) displays the Resource Form view in the bottom pane. Pressing F6 toggles the focus between the top and the bottom panes.

 


 

 

Watch this space for more tips...

 

 

 

 

All Content Copyright © Ismet Kocaman  |  http://www.ismetkocaman.com

 

Disclaimer

The information contained in this website is intended only for the general interest of its readers and should not be used as a basis for making any business or other important decisions. Though all the efforts have been made to create accurate content, mistakes can occur. The author of this website cannot, therefore, guarantee the accuracy of content. The author of this website disclaims all warranties and must advise you to use the information in this website at your own risk. The author of this website is not liable for loss of any nature resulting from the use of or reliance upon the information found therein. Screen captures were reprinted with authorization from Microsoft Corporation. This document is not a product of Microsoft Corporation.

 

Trademarks

Microsoft® is a registered trademark or trademark of Microsoft Corporation in the United States and/or other countries. The author of this document has no affiliation with Microsoft Corporation. All other trademarks mentioned herein are the property of their respective owners.