Interdire d'inscrire quelque chose dans une cellule en fonction d'une autre

Bonjour à tous,

J'aimerais savoir comment empêcher d'inscrire quelque chose dans des cellules en fonction des autres.

Je m'explique: je mets une croix (X) dans une case pour remplir un questionnaire: j'aimerais qu'il soit interdit d'en mettre dans les cases à côté si une est déjà remplie.

Exemple: je mets une croix en A1, je veux interdire de pouvoir mettre une croix en B1/C1 ou D1 ou inversement si je mets un "x" en C1, je veux interdire de remplir A1/B1/D1

Merci d'avance

Bonjour,

Vous pourriez utiliser l'événement change dans votre module d'onglet :

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)

  If Target.Count > 1 Then Exit Sub

  If Not Intersect(Target, Range("A1:D1")) Is Nothing Then
     If WorksheetFunction.CountA(Range("A1:D1")) > 1 Then
        Target = ""
        MsgBox "Choix déjà réalisé, effacez pour saisir un nouveau choix !", vbCritical
     End If
  End If

End Sub

Bonjour Eric,

Tout d'abord merci pour votre réponse !

Mais dans votre tableur je peux mettre des croix dans toutes les cases....

2 ème point je ne sais pas quoi faire avec toutes lignes de codes que vous avez mentionné

(Re)-bonjour,

Je vous propose une solution sans macro :

"Données" --> "Validation des données" --> "Autoriser : personnalisé" --> "Formule : =NB.SI($A2:$C2;"X")<=1"

Illustré dans ce fichier :

Pour MPE,

Il faut revenir à votre énoncé, c'est à dire qu'on ne peut saisir qu'une valeur dans l'aire A1:D1. C'est ce que vous avez testé ?

Super pedro ça fonctionne ! En revanche il me semble impossible de recopier la mise en forme au 100 autres lignes en dessous, bizarre ?

Super pedro ça fonctionne ! En revanche il me semble impossible de recopier la mise en forme au 100 autres lignes en dessous, bizarre ?

Pour éviter les erreurs, je vous invite à sélectionner la totalité de la plage concernée et recréer une validation. A noter que la formule est à écrire pour la cellule supérieure gauche de la plage sélectionnée. En l'absence de $ pour figer la ligne et/ou la colonne, la plage se décale à chaque nouvelle cellule. Dans votre cas, les colonnes sont figées, mais pas les lignes (le décompte des X concerne bien chaque ligne indépendamment l'une de l'autre).

Encore merci pedro !

Rechercher des sujets similaires à "interdire inscrire chose fonction"