Listes déroulantes en cascade avec Oui et Non

  • Initiateur de la discussion Initiateur de la discussion benadry
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

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+
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
935
Retour