Try this


Private Sub Worksheet_Change(ByVal Target As Range)

    Set KeyCells = Range("M19")

    On Error Resume Next
    Set KeyCells = Application.Union(KeyCells, KeyCells.Precedents)
    On Error Goto 0

    If Not Application.Intersect(Target, KeyCells) Is Nothing Then
        Range("L16").Value = Now
    End If

End Sub
Note that the time stamp will appear anytime that a precedent cell is changed, NOT when the value in M19 is changed.

For example, if M19 has the formula =ABS(A1) and the user changes A1 from -1 to 1, the value in M19 will not be changed, but the time stamp will appear.