Private Sub Worksheet_Change(ByVal Target As Range)
Dim P As Range, i&, mem
Protect "toto", UserInterfaceOnly:=True 'feuille protégée
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènements
On Error Resume Next
With Intersect(Target, Range("Q9:Q" & Rows.Count), UsedRange)
Set P = .Areas(1)
For i = 2 To .Areas.Count
Set P = Range(P, .Areas(i)) 'concatène les zones disjointes
Next
mem = P
P.Locked = False 'déverrouille
P.Replace "*/*", "#N/A", xlWhole
P.SpecialCells(xlCellTypeConstants, 16).Locked = True 'verrouille
P = mem
End With
With Intersect(Target, Range("V9:V" & Rows.Count), UsedRange)
.Locked = False 'déverrouille
.Replace "Vu", "#N/A", xlWhole
.SpecialCells(xlCellTypeConstants, 16).Locked = True 'verrouille
.SpecialCells(xlCellTypeConstants, 16) = "Vu"
End With
Application.EnableEvents = True 'réactive les évènements
End Sub