using 2007 SP3
Below is a macro that calculates the DCMA BEI. It works great on my files. but when I take it to another machine (same setup, same MS project app etc) - it bombs.
the code line that fails is: tbActualFin = Application.ActiveSelection.Tasks.count
- which works fine on my machine but not on my colleague's
===================
Sub Calc_BEI()
Dim tbActualFin As Long
Dim tbShouldFin As Long
'create filter for Actual Finish
FilterEdit Name:="Actual Finish BEI", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Actual Finish", _
Test:="does not equal", Value:="NA", ShowInMenu:=False, ShowSummaryTasks:=False
FilterEdit Name:="Actual Finish BEI", TaskFilter:=True, FieldName:="", NewFieldName:="Baseline Duration", Test:="is greater than", Value:="0", Operation:="And", ShowSummaryTasks:=False
FilterEdit Name:="Actual Finish BEI", TaskFilter:=True, FieldName:="", NewFieldName:="Summary", Test:="equals", Value:="NO", Operation:="And", ShowSummaryTasks:=False
FilterApply Name:="Actual Finish BEI"
'select data and count
SelectTaskColumn Column:="Name"
tbActualFin = Application.ActiveSelection.Tasks.count
'set variable to status date
tbProjStart = DateFormat(ActiveProject.StatusDate, pjDate_mm_dd_yy)
'create filter for baseline finish
FilterEdit Name:="BL Finish BEI", TaskFilter:=True, Create:=True, OverwriteExisting:=True, FieldName:="Baseline Finish", _
Test:="is less than or equal to", Value:=tbProjStart, ShowInMenu:=True, ShowSummaryTasks:=False
FilterEdit Name:="BL Finish BEI", TaskFilter:=True, FieldName:="", NewFieldName:="Baseline Finish", Test:="equals", Value:="NA", Operation:="Or", ShowSummaryTasks:=False
FilterEdit Name:="BL Finish BEI", TaskFilter:=True, Parenthesis:=True, FieldName:="", NewFieldName:="Duration", Test:="is greater than", Value:="0", Operation:="And", ShowSummaryTasks:=False
FilterEdit Name:="BL Finish BEI", TaskFilter:=True, FieldName:="", NewFieldName:="Summary", Test:="equals", Value:="No", Operation:="And", ShowSummaryTasks:=False
FilterApply Name:="BL Finish BEI"
'select data and count
SelectTaskColumn Column:="Name"
tbShouldFin = Application.ActiveSelection.Tasks.count
FilterApply Name:="All Tasks"
'calculate BEI
tbBEI = Round(tbActualFin / tbShouldFin, 2)
'display in message box
MsgBox "Status Date = " & tbProjStart & vbCrLf & vbCrLf _
& "Actual Finish Count =" & tbActualFin & vbCrLf _
& " Baseline Count = " & tbShouldFin & vbCrLf & vbCrLf _
& "BEI = " & tbActualFin & " / " & tbShouldFin & " = " & tbBEI
End Sub
==========
anybody have a clue?
GMAN