XL 2010 Liste déroulante sous condition

pompier83

XLDnaute Nouveau
Bonjour à tous je viens vous redemandez un peut aide s'il vous plait

je souhaiterais créer des listes déroulantes qui se remplissent sous condition de la valeur des autres listes déroulantes .

exemple:

en A1 j'ai une Liste déroulant avec dedans une liste de nom issus de l'onglet liste A1:A10
en A2 j'ai une Liste déroulant avec dedans une liste de nom issus de l'onglet liste A1:A10
idem en A3 j'ai une Liste déroulant avec dedans une liste de nom issus de l'onglet liste A1:A10

je souhaiterait que si je sélectionne Toto1 en A1 dans les liste déroulante A2 et A3 Toto1 apparais plus si j’enlève Toto1 en A1 en A2 et A3 Toto1 réapparait dans la liste

existe t'il une solution en macro ou autre pour résoudre mon problème s'il vous plait un grand merci d'avance
 

Pièces jointes

  • Gestiongroupe.xlsx
    9.6 KB · Affichages: 52

pompier83

XLDnaute Nouveau
Bonjour r@chid et merci pour ton aide je vois que c'est une solution à l'aide de formule matriciel et liste que je maitrise pas vraiment je vais essayer tous de même tenter de l'adapter au projet mais si quelqu'un à une idée version macro je suis preneur également je te renouvelle mes remerciements
 

Chris401

XLDnaute Accro
Re

Le bug arrive quand DISPO n'a pas de données ; ce qui fait qu'il n'y a pas de cellules à vider.

Pour contourner ce problème, modifie le code :
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Sheets("Liste").[F2:H2] = "X"

If Not Intersect([A2:A14], Target) Is Nothing And Target.Count = 1 Then
    [Dispo1].ClearContents
        For Each c In [Groupe1]
            If IsError(Application.Match(c, Range(Cells(2, Target.Column), Cells(14, Target.Column)), 0)) Then
                Sheets("Liste").[F65000].End(xlUp).Offset(1, 0) = c
            End If
        Next c
End If
If Not Intersect([B2:B14], Target) Is Nothing And Target.Count = 1 Then
    [Dispo2].ClearContents
        For Each c In [Groupe2]
            If IsError(Application.Match(c, Range(Cells(2, Target.Column), Cells(14, Target.Column)), 0)) Then
                Sheets("Liste").[G65000].End(xlUp).Offset(1, 0) = c
            End If
        Next c
End If
If Not Intersect([C2:C14], Target) Is Nothing And Target.Count = 1 Then
    [Dispo3].ClearContents
        For Each c In [Groupe3]
            If IsError(Application.Match(c, Range(Cells(2, Target.Column), Cells(14, Target.Column)), 0)) Then
                Sheets("Liste").[H65000].End(xlUp).Offset(1, 0) = c
            End If
        Next c
End If
End Sub
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 948
Membres
101 849
dernier inscrit
florentMIG