Blocage de ligne selon valeur d'une cellule

Bonjour,

Est-ce que quelqu'un aurait l'amabilité de me venir en aide s'il vous plaît.

Voilà mon problème.

Je cherche à bloquer une ligne en fonction de la valeur de la cellule AA.

Exemple: ligne 2 si en AA il y a OUI, alors je souhaite bloquer les cellules B à Z de cette ligne. Si il y a NON en AA alors je souhaite que les cellules AY à BC soient bloquées.

Je voudrait que cela marche comme cela pour toutes les lignes du tableur.

Est-ce que quelqu'un peut m'aider s'il vous plaît.

J'ai déjà réussi seulement je ne sais pas pourquoi j'ai repris mon fichier 2 semaines plus tard et ma macro ne marchait plus.

J'avais utiliser la macro suivante :

Private Sub Worksheet_Change2(ByVal Target As Range)

If ActiveSheet.Range("AA" & Target.Row) <> "OUI" And ActiveSheet.Range("AA" & Target.Row) <> "NON" Then

MsgBox "attendu mot [ OUI ] ou [ NON ]"

Application.EnableEvents = False

Target.ClearContents

Target.Activate

Application.EnableEvents = True

Else

With ActiveSheet

.Unprotect 'mot de passe si nécessaire

If Range("AA" & Target.Row) = "OUI" Then

.Range("AX" & Target.Row & ":BB" & Target.Row).Locked = False

.Range("C" & Target.Row & ":Z" & Target.Row).Locked = True

End If

If .Range("AA" & Target.Row) = "NON" Then

.Range("C" & Target.Row & ":Z" & Target.Row).Locked = False

.Range("AX" & Target.Row & ":BB" & Target.Row).Locked = True

End If

.Protect

End With

End If

End Sub

Seulement maintenant elle ne marche plus. Je ne comprend pas pourquoi. Help me please. Si quelqu'un saurait d'où peut venir mon problème ou bien aurait une autre macro qui marcherais mieux je lui en serais reconnaissant car je dois présenter mon tableur cet après midi.

D'avance merci pour tout

Bonjour Xandre, bonjour le forum,

L'événement Change2 n'existe pas ! Supprime le 2 et ton code refonctionnera... Toutefois, l'événementielle Change se réfère automatiquement à l'onglet dans lequel est est placée. ActiveSheet est donc superflu...

Ton code simplifié :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 27 Then Exit Sub
If Not Target.Value = "OUI" And Not Target.Value = "NON" Then
    MsgBox "attendu mot [ OUI ] ou [ NON ]"
    Application.EnableEvents = False
    Target.ClearContents
    Target.Activate
    Application.EnableEvents = True
Else
    Me.Unprotect 'mot de passe si nécessaire
    Range("AX" & Target.Row & ":BB" & Target.Row).Locked = IIf(Target.Value = "OUI", False, True)
    Range("C" & Target.Row & ":Z" & Target.Row).Locked = IIf(Target.Value = "OUI", True, False)
    Me.Protect
End If
End Sub

Merci beaucoup pour ta réponse et ta réactivité cela marche même beaucoup mieux qu'avant.

Bonne journée.

Rechercher des sujets similaires à "blocage ligne valeur"