Salut,
Voici un code qui te montre comment déverrouiller des cellules en fonction de la modification d'une autre.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target = Range("B2") And Target <> "" Then
ActiveSheet.Unprotect
Range("B3:B4 , C2").Locked = False
ActiveSheet.Protect
End If
End Sub
Il y aurait probablement la possibilité de ne pas passer par ActiveSheet.Unprotect/Protect, mais je n'ai pas trop cherché pour l'instant, ne sachant pas si ma proposition te convient.
Le problème dans ton cas me semble être si tu reviens en arrière. Je m'explique : Tu choisis par exemple un texte en B1 et ça libère les cellules B3, B4 et C2. Mais si tu effaces ta donnée en B1, les cellules restent libérées. On pourrait bien entendu trouver un code qui les verrouillerait à nouveau, mais une fois de plus, je n'ai pas cherché, ne connaissant pas tes besoins.
Amicalement.