Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim CelluleAvant
CelluleAvant = Target.Address
'MsgBox CelluleAvant
If Not IsEmpty(CelluleAvant) Then
If Not Intersect(Range(CelluleAvant), [E5:LV30]) Is Nothing Then Calculate
End If
ActiveSheet.Unprotect
If Not Application.Intersect(Target, Range("E5:LV30")) Is Nothing And Target.Count = 1 Then 'Adapter la plage
MsgBox "Hello" 'UserForm1.Show
End If
Calculate
ActiveSheet.Protect
End Sub