Private Sub Worksheet_Change(ByVal Cible As Range)
Dim p As Boolean, Cel As Range
p = Me.ProtectContents
If p Then Me.Unprotect
For Each Cel In Cible.Cells
With Cel
If .Column = 1 And .Row > 2 And .Value = "B" Then .Offset(, 1).Resize(1, 3).Locked = True Else .Offset(, 1).Resize(1, 3).Locked = False
End With
Next
If p Then Me.Protect
End Sub