Finding task ID for a task that was changed using mouse left click

S

shree

Hi

While using the mouse to change task durations in the gantt chart (dragging
after left cick), is it possible to identify the task which is getting
modified, in VBA?

The activity will trigger a project_change event but since the Active
Selection has no object associated (no cells are selected), I cannot get the
task that was modified.

A similar problem is with tasks that are split using the mouse. It would be
nice if Project allowed the task ID to reported as the active selection.

It would be possible to store old task durations in taskX and compare to the
current duration to identify the task that has changed, but this is very
cumbersome.
Is there a straight forward way?

Thanks
Shree
 
M

Mark Durrenberger

Shree,
Try this... use the "BeforeTaskChange" event...

I don't know the pj field to check for "split tasks" (in fact, a search of
the list at the bottom of this message shows only one flag related to
"split" tasks but it is related to resource leveling) but you can look for a
change in pjTaskFinish (since splitting a task will change the finish date).
It's not foolproof but might just work fine...

The code below has to be in a class module... but I suspect that you already
know that if you are messing with on-change event stuff...

Good luck,
hope this helps,
Mark



Public WithEvents myApp As MSProject.Application
Private Sub myApp_ProjectBeforeTaskChange(ByVal tsk As MSProject.Task, _
ByVal Field As PjField, _
ByVal NewVal As Variant, _
Cancel As Boolean)

' you could build a huge case statement here but I recommend just watching
for changes of the values you are concerned with (like Duration)

Select Case Field
'
Case pjTaskText14 '
' if a change occurs in Text14 do something
msgbox "Hi Shree"
'=================================================
Case pjTaskText15
' look at the active cell (not a selection)
If ActiveCell.Task.Summary Then
MsgBox "Entry not permitted on summary tasks." & vbCrLf & "Press
ESCAPE after clicking OK", vbOKOnly, "Entry not allowed"
Cancel = True
'=================================================
Case pjTaskFinish
msgbox "Active Cell ID Number is: " & activecell.task.id, vbokonly,"Hi
Shree"
cancel = True

End Select


=====
pjTaskActualCost pjTaskLevelDelay
pjTaskActualDuration pjTaskLinkedFields
pjTaskActualFinish pjTaskMarked
pjTaskActualOvertimeCost pjTaskMilestone
pjTaskActualOvertimeWork pjTaskName
pjTaskActualStart pjTaskNotes
pjTaskActualWork pjTaskNumber1
pjTaskACWP pjTaskNumber2
pjTaskAssignmentDelay pjTaskNumber3
pjTaskAssignmentUnits pjTaskNumber4
pjTaskBaselineCost pjTaskNumber5
pjTaskBaselineDuration pjTaskNumber6
pjTaskBaselineDurationEstimated pjTaskNumber7
pjTaskBaselineFinish pjTaskNumber8
pjTaskBaselineStart pjTaskNumber9
pjTaskBaselineWork pjTaskNumber10
pjTaskBCWP pjTaskNumber11
pjTaskBCWS pjTaskNumber12
pjTaskCalendar pjTaskNumber13
pjTaskConfirmed pjTaskNumber14
pjTaskConstraintDate pjTaskNumber15
pjTaskConstraintType pjTaskNumber16
pjTaskContact pjTaskNumber17
pjTaskCost pjTaskNumber18
pjTaskCost1 pjTaskNumber19
pjTaskCost2 pjTaskNumber20
pjTaskCost3 pjTaskObjects
pjTaskCost4 pjTaskOutlineCode1
pjTaskCost5 pjTaskOutlineCode2
pjTaskCost6 pjTaskOutlineCode3
pjTaskCost7 pjTaskOutlineCode4
pjTaskCost8 pjTaskOutlineCode5
pjTaskCost9 pjTaskOutlineCode6
pjTaskCost10 pjTaskOutlineCode7
pjTaskCostRateTable pjTaskOutlineCode8
pjTaskCostVariance pjTaskOutlineCode9
pjTaskCreated pjTaskOutlineCode10
pjTaskCritical pjTaskOutlineLevel
pjTaskCV pjTaskOutlineNumber
pjTaskDate1 pjTaskOverallocated
pjTaskDate2 pjTaskOvertimeCost
pjTaskDate3 pjTaskOvertimeWork
pjTaskDate4 pjTaskParentTask
pjTaskDate5 pjTaskPercentComplete
pjTaskDate6 pjTaskPercentWorkComplete
pjTaskDate7 pjTaskPredecessors
pjTaskDate8 pjTaskPreleveledFinish
pjTaskDate9 pjTaskPreleveledStart
pjTaskDate10 pjTaskPriority
pjTaskDeadline pjTaskProject
pjTaskDelay pjTaskRecurring
pjTaskDuration pjTaskRegularWork
pjTaskDuration1 pjTaskRemainingCost
pjTaskDuration2 pjTaskRemainingDuration
pjTaskDuration3 pjTaskRemainingOvertimeCost
pjTaskDuration4 pjTaskRemainingOvertimeWork
pjTaskDuration5 pjTaskRemainingWork
pjTaskDuration6 pjTaskResourceGroup
pjTaskDuration7 pjTaskResourceInitials
pjTaskDuration8 pjTaskResourceNames
pjTaskDuration9 pjTaskResourcePhonetics
pjTaskDuration10 pjTaskResourceType
pjTaskDuration1Estimated pjTaskResponsePending
pjTaskDuration2Estimated pjTaskResume
pjTaskDuration3Estimated pjTaskResumeNoEarlierThan
pjTaskDuration4Estimated pjTaskRollup
pjTaskDuration5Estimated pjTaskSheetNotes
pjTaskDuration6Estimated pjTaskStart
pjTaskDuration7Estimated pjTaskStart1
pjTaskDuration8Estimated pjTaskStart2
pjTaskDuration9Estimated pjTaskStart3
pjTaskDuration10Estimated pjTaskStart4
pjTaskDurationVariance pjTaskStart5
pjTaskEarlyFinish pjTaskStart6
pjTaskEarlyStart pjTaskStart7
pjTaskEffortDriven pjTaskStart8
pjTaskEstimated pjTaskStart9
pjTaskExternalTask pjTaskStart10
pjTaskFinish pjTaskStartSlack
pjTaskFinish1 pjTaskStartVariance
pjTaskFinish2 pjTaskStop
pjTaskFinish3 pjTaskSubproject
pjTaskFinish4 pjTaskSubprojectReadOnly
pjTaskFinish5 pjTaskSuccessors
pjTaskFinish6 pjTaskSummary
pjTaskFinish7 pjTaskSV
pjTaskFinish8 pjTaskTeamStatusPending
pjTaskFinish9 pjTaskText1
pjTaskFinish10 pjTaskText2
pjTaskFinishSlack pjTaskText3
pjTaskFinishVariance pjTaskText4
pjTaskFixedCost pjTaskText5
pjTaskFixedCostAccrual pjTaskText6
pjTaskFixedDuration pjTaskText7
pjTaskFlag1 pjTaskText8
pjTaskFlag2 pjTaskText9
pjTaskFlag3 pjTaskText10
pjTaskFlag4 pjTaskText11
pjTaskFlag5 pjTaskText12
pjTaskFlag6 pjTaskText13
pjTaskFlag7 pjTaskText14
pjTaskFlag8 pjTaskText15
pjTaskFlag9 pjTaskText16
pjTaskFlag10 pjTaskText17
pjTaskFlag11 pjTaskText18
pjTaskFlag12 pjTaskText19
pjTaskFlag13 pjTaskText20
pjTaskFlag14 pjTaskText21
pjTaskFlag15 pjTaskText22
pjTaskFlag16 pjTaskText23
pjTaskFlag17 pjTaskText24
pjTaskFlag18 pjTaskText25
pjTaskFlag19 pjTaskText26
pjTaskFlag20 pjTaskText27
pjTaskFreeSlack pjTaskText28
pjTaskGroupBySummary pjTaskText29
pjTaskHideBar pjTaskText30
pjTaskHyperlink pjTaskTotalSlack
pjTaskHyperlinkAddress pjTaskType
pjTaskHyperlinkHref pjTaskUniqueID
pjTaskHyperlinkScreenTip pjTaskUniquePredecessors
pjTaskHyperlinkSubAddress pjTaskUniqueSuccessors
pjTaskID pjTaskUpdateNeeded
pjTaskIgnoreResourceCalendar pjTaskVAC
pjTaskIndicators pjTaskWBS
pjTaskIndex pjTaskWBSPredecessors
pjTaskIsAssignment pjTaskWBSSuccessors
pjTaskLateFinish pjTaskWork
pjTaskLateStart pjTaskWorkContour
pjTaskLevelAssignments pjTaskWorkVariance
pjTaskLevelCanSplit

--
_________________________________________________________
Mark Durrenberger, PMP
Principal, Oak Associates, Inc, www.oakinc.com
"Advancing the Theory and Practice of Project Management"
________________________________________________________

The nicest thing about NOT planning is that failure
comes as a complete surprise and is not preceded by
a period of worry and depression.

- Sir John Harvey-Jones
 

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