I have several error checking routines that are needed to prevent invalid entries being made in some fields of MS Project e.g. partial completion of a milestone, non forward completion of gate milestones in a stage-gate process model etc. In order to apply the error checking, I need to know the task, or range of tasks, that were edited. This is simple if the menus are used to change one or more tasks because the ActiveSelection range can be used to check for valid changes. But this does not work in cases where the user edits a cell, then clicks another random cell upon which the change is captured and processed by MS Project. I have found no method by which the edited task or tasks can be determined. I have tried using the App_ProjectBeforeTaskChange event to capture the edited tasks which works but this event is not always triggered e.g. if links are added. In Excel, there is SheetSelectionChange event that can be used to determine when a new cell is selected. This could be used to track the last cell (or task in MS Project) selected, but there is no equivalent event in MS Project. We could scan all tasks in the project every time a change is made using the Project_Change event but if the project has thousands of rows, this will slow down the interface. Any suggestions would be much appreciated.