I would not think of events that way
Say for example, if you changed B4 then you also want to change C4 to be 2x that
If you only had this ...
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$4" then
Range("C4").Value = 2 * Range("B4").value
Endif
End Sub
... when you change the value in B4, the event will fire, BUT it will fire again because the event handler changed C4
Turning off event handling will allow C4 to be changed and not trigger a circular event chain
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$B$4" then
Application.EnableEvents = False
Range("C4").Value = 2 * Range("B4").value
Application.EnableEvents = True
Endif
End Sub
This fires when the selection changes
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "selection changed to " & Target.Address
End Sub