Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [E3]) Is Nothing Or Not IsDate([E3]) Then Exit Sub
If Month(DateSerial(Year([E3]), 2, 29)) = 3 Then Macro1 Else Macro2
End Sub
Sub Macro1()
MsgBox "Année normale"
End Sub
Sub Macro2()
MsgBox "Année bissextile"
End Sub