Microsoft 365 Bloquer des cellules si une cellule est déjà remplie

ettorival

XLDnaute Nouveau
Bonjour à tous

Je souhaiterais avoir votre aide pour exécuter un blocage de plusieurs cellules si une seule cellule est déjà remplie sur la ligne (remplie uniquement avec des 1). Dans le fichier exemple ci-dessous, je souhaite bloquer le remplissage de "GO" et de "NO GO" pour le jalon. Et par exemple pour le jalon 2 si je met 1 dans "GO" bloquer les 2 autres.

j'ai tester via la validation de données (options-autoriser-personnalisé) en essayant de faire fonctionner une formule : (je me place sur la cellule F9) (options-autoriser-personnalisé) =SIG9=""+SIH9="" mais cela ne marche pas.

J'aimerai dans la mesure du possible pouvoir avoir une liste déroulante pour sélectionner le 1 c'est pour que j'avais essayer de mettre la formule dans validation de données (options-autoriser-Liste) mais sans succès.

Merci d'avance de votre aide
 

Pièces jointes

  • exemple.xlsx
    9.1 KB · Affichages: 13
Solution
Bonsoir Ettorival, Lolote,
Un essai en PJ avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("F8:H12")) Is Nothing Then
        L = Target.Row
        If Application.CountIf(Range(Cells(L, "F"), Cells(L, "H")), 1) > 0 And Target <> 1 Then
            Cells(L, "I").Select
        End If
    End If
Fin:
End Sub
Règles :
1- Si pas de 1 dans la ligne, ne rien faire
2- Si déjà un ou des 1 mais cellule contient 1 on ne fait rien, ce qui permet de supprimer les 1
3- Si déjà un ou des 1 mais cellule ne contient rien , on interdit la saisie dans la cellule

Lolote83

XLDnaute Accro
Bonjour,
Pour le bloquage je ne sais pas, mais tu pourrais utiliser une MFC (Mise en forme conditionnelle) qui dit que si plus d'une donnée saisie sur la ligne alors on colorie en rouge et cela t'alertera

1621953345336.png

@+ Lolote83
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonsoir Ettorival, Lolote,
Un essai en PJ avec :
VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error GoTo Fin
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("F8:H12")) Is Nothing Then
        L = Target.Row
        If Application.CountIf(Range(Cells(L, "F"), Cells(L, "H")), 1) > 0 And Target <> 1 Then
            Cells(L, "I").Select
        End If
    End If
Fin:
End Sub
Règles :
1- Si pas de 1 dans la ligne, ne rien faire
2- Si déjà un ou des 1 mais cellule contient 1 on ne fait rien, ce qui permet de supprimer les 1
3- Si déjà un ou des 1 mais cellule ne contient rien , on interdit la saisie dans la cellule
 

Pièces jointes

  • exemple.xlsm
    14.2 KB · Affichages: 3

Discussions similaires

Haut Bas