Listes déroulantes en cascade avec Oui et Non

benadry

XLDnaute Occasionnel
Bonjour le forum,

Le sujet a déjà été maintes fois traité ici et ailleurs, mais je n'arrive pas à trouver la solution à ma question.

Je travaille sur trois listes déroulantes interdépendantes :
- la valeur de la première (nommée "Couleur" dans l'exemple) est OUI ou NON ;
- si "Couleur" = NON, Rouge et Vert sont obligatoirement égales à NON ;
- si Couleur = OUI, Rouge peut être à OUI ou NON ;
- si Rouge est à OUI, Vert est à NON ;
- si Rouge est à NON, Vert est à OUI.

En résumé, si J17 = NON, K17 et L17 = NON ; si J17 = OUI, un des deux (K17 ou L17) doit être égal à OUI et l'autre est égal à NON.

Pourriez-vous me dire comment traduire ça en Excel ?

J'ai joint un petit fichier de test.

Merci d'avance.

Bien cordialement.
 

Pièces jointes

  • Classeur1.xls
    25 KB · Affichages: 63
  • Classeur1.xls
    25 KB · Affichages: 65
  • Classeur1.xls
    25 KB · Affichages: 60

Paf

XLDnaute Barbatruc
Re : Listes déroulantes en cascade avec Oui et Non

Bonjour

Ce ne sont pas réellement des listes déroulantes, mais des cellules avec liste de validation.

quelque soit la cellule modifiée, les contraintes sont respectées.
Le code suivant traite au niveau des cellules. à placer dans la partie code de la feuille

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Row = 17 Then
    If Target.Column = 10 Then '(j17)
        If Target.Value = "Non" Then
            Range("K17") = "Non"
            Range("L17") = "Non"
        Else
            Range("K17") = "Oui" 'on aurait pu mettre L17
        End If
    End If
    
    If Target.Column = 11 Or Target.Column = 12 Then '(k17 et L17)
        If Target.Value = "Oui" And Range("J17").Value = "Non" Then
            MsgBox "choix impossible"
            Target.Value = "Non"
        End If
        If Range("J17").Value = "Oui" Then
            If Target.Value = "Oui" Then
                If Target.Column = 11 Then
                    Range("L17").Value = "Non"
                Else
                    Range("K17").Value = "Non"
                End If
            Else
                If Target.Column = 11 Then
                    Range("L17").Value = "Oui"
                Else
                    Range("K17").Value = "Oui"
                End If
            End If
        End If
    End If
End If
End Sub

à adapter si les cellules changent de place.


Il doit y avoir plus simple mais ....
A+
 

benadry

XLDnaute Occasionnel
Re : Listes déroulantes en cascade avec Oui et Non

Bonjour Paf,
Bonjour le forum,

Merci pour la réponse. J'ai cependant un problème : à chaque fois que j'utilise la macro, Excel bugge complètement !!

Existe-t-il une solution plus simple, sans passer par les macros ?

Merci d'avance.

Bien cordialement.
 

benadry

XLDnaute Occasionnel
Re : Listes déroulantes en cascade avec Oui et Non

Bonjour,

Merci à JHA et à Paf.

JHA : ça fonctionne très bien et compte tenu de ce que je veux faire, je préfère au maximum éviter les macros.

Merci encore.


Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 183
Messages
2 086 005
Membres
103 087
dernier inscrit
sarah.caneri