I think what you want is to pass the target to that other routine?
You'll still need that worksheet (workbook?) event to call that routine, though.
For instance, I used this code behind the worksheet:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Call myOtherSub(Target.Cells(1))
End Sub
And this code in a General module:
Option Explicit
Sub myOtherSub(myCell As Range)
MsgBox myCell.Address(0, 0)
End Sub
Whenever I change anything in the worksheet, I pass the first cell in the
changed range to the myOtherSub routine.