Verrouiller une cellule suivant le contenu d'une autre

Bonjour,

Je suis nouveau sur ce forum, alors merci pour votre indulgence.

Dans la colonne B, j'ai des valeurs obtenues à partir d'une liste déroulante, de même dans les colonnes D,E,F et G.

Si dans la colonne B j'ai la valeur "Virt", je voudrais interdire la saisie dans la colonne G de la même ligne et

Si dans la colonne B j'ai la valeur "Chèque reçu", je voudrais interdire la saisie dans la colonne F de la même ligne.

J'ai regardé les sujets similaires sur ce forum, mais pas réussi à le faire marcher.

Je joins le fichier

Merci pour votre réponse

29logiciel-treso.xlsm (35.19 Ko)

Salut et Bienvenue sur le forum.

Tu peux annuler la saisie en fonction de la valeur de la cellule.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And Cells(Target.Row, 2) = "Virt" And Target.Value <> "" Then Target.Value = ""
If Target.Column = 6 And Cells(Target.Row, 2) = "Chèque reçu" And Target.Value <> "" Then Target.Value = ""
End Sub

Bonjour, et merci bien pour ta réponse rapide.

çà marche bien, et je voudrais maintenant passer automatiquement à la colonne suivante si la cellule est verrouillée.

J'ai essayé de mettre dans le "if" l'instruction suivante : target.Column =8

Mais çà produit une erreur de compilation.

Si vous avez des idées, merci pour vos réponses

Bonjour à tous,

Si j'ai bien compris ta remarque ...

Il te suffit de compléter la macro de Jers19 ...

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 7 And Cells(Target.Row, 2) = "Virt" And Target.Value <> "" Then Target.Value = "": Target.Offset(, 1).Select
If Target.Column = 6 And Cells(Target.Row, 2) = "Chèque reçu" And Target.Value <> "" Then Target.Value = "": Target.Offset(, 1).Select
End Sub

En espèrant que cela t'aide ...

Merci bien, vous êtes tous SUPER !!!

Merci ... pour tes remerciements ...

Rechercher des sujets similaires à "verrouiller suivant contenu"