Liste en cascade

machin

XLDnaute Nouveau
Bonjour à toutes et à tous,

Soucis avec une liste déroulante, je n'arrive pas pour un choix 1 sélectionné, obtenir uniquement la liste afférent au choix 1 en choix 2
Un grand merci à tous les contributeurs

Cordialement
 

Pièces jointes

  • Liste en cascade.xls
    47.5 KB · Affichages: 62
  • Liste en cascade.xls
    47.5 KB · Affichages: 61
  • Liste en cascade.xls
    47.5 KB · Affichages: 62

Dranreb

XLDnaute Barbatruc
Re : Liste en cascade

Bonjour.
Vu le nombre de demandes dans ce genre de contexte (hors ComboBox en Userform), j'ai fini par attaquer la rédaction d'un module de classe pour gérer les Listes liées. Mais pas les listes en cascades, je commence par le plus compliqué…
Mais ça devrait permettre à peu près la même chose que le module ComboBoxLiés. Sinon bien sûr ComboBoxCasc est toujours utilisable immédiatement.
 

machin

XLDnaute Nouveau
Re : Liste en cascade

Bonsoir Dranreb,

Désolé mais sans vouloir vous offenser Dranred, je ne comprends qu'un mot sur deux. Mon faible niveau expliquerait cela. Cependant est-ce que vous me conseillez de regarder "ComboboxLiés" ou alors "ComboboxCasc" ?
Dans l'attente de vous lire de nouveau.

Cordialement
 

Dranreb

XLDnaute Barbatruc
Re : Liste en cascade

En gros je veux dire que j'ai 2 systèmes tout prêts et qui s'adaptent facilement et rapidement à beaucoup de situations pour effectuer des sélections d'éléments de tableaux à partir de plusieurs critères choisis dans des listes qui se réduisent à mesure des choix. Mais ils ne fonctionnent qu'avec des ComboBox et de préférence dans un Userform. L'un est pour des choix effectué toujours dans le même ordre, l'autre dans un ordre quelconque. Mais pour des listes déroulantes de formulaire ou de validations, je n'ai actuellement rien d'utilisable immédiatement.

P.S. Ce qui veut dire que la suite à donner dépend du but de ces choix. C'est vrai, vous en faites quoi derrière ?
Si c'est pour des listes de validation dans plusieurs lignes où ces choix doivent être conservés, il vous faudra attendre que je mette un peu au point le dispositif.
Si c'est pour consulter la liste et restituer un affichage des deux infos associées correspondantes des colonnes de droites qui ne font pas partie des listes déroulantes, dessinez un Userform avec deux ComboBox et deux TextBox, et alors là j'ai une solution immédiate pour gérer les choix dans les ComboBox et afficher les infos correspondantes. Précisez si les choix doivent être en cascade toujours dans le même ordre ou liés dans un ordre quelconque.
 
Dernière édition:

Theze

XLDnaute Occasionnel
Re : Liste en cascade

Bonjour,

Remplace la proc évènementielle "Worksheet_Change" par celle-ci et teste. La liste de choix est récrée en utilisant le résultat du filtrage qui est collé en colonne C de la feuille "Données" :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

    Dim Adr As String
    Dim KeyCells As Range
       
    'si A2
    If Target.Address(0, 0) = "A2" Then
    
        With Worksheets("Données")
            
            'vide la colonne C
            .Range("C:C").Clear
            
            'filtrage de la plage (qui peut être rallongée)
            .Range("B1:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).AutoFilter 1, Range("A2") & "*"
            
            'copie du résultat en colonne C
            .AutoFilter.Range.Copy .Range("C1")
            
            'suppression du filtre
            .Range("B1:B" & .Cells(.Rows.Count, 2).End(xlUp).Row).AutoFilter
            
            'défini la plage
            Adr = "=Données!C2:C" & .Cells(.Rows.Count, 3).End(xlUp).Row
            
        End With
        
        'recrée la liste de validation avec les valeurs de la colonne C
        With Range("B2").Validation
        
            .Delete
            .Add xlValidateList, , , Adr
            
        End With
    
    End If
    
    
    ' La variable KeyCells contient les cellules qui déclencheront une alerte si elles sont modifiées.
    Set KeyCells = Range("a2:b3")
    
    If Not Intersect(KeyCells, Target) Is Nothing Then
    ' Affichage d'un message lorsque l'une des cellules désignées a été modifiée.
    'MsgBox "La cellule " & Target.Address & " a été modifiée."
        If Range("A2") <> 0 Then
        A2
        End If
    
        If Range("A2") <> 0 And Range("b2") <> 0 Then
        A2B2
        End If
    
    End If
    
End Sub

Hervé.
 

machin

XLDnaute Nouveau
Re : Liste en cascade

Bonjour,

@Dranreb: Je ne connais absolument pas Les deux choix que vous proposez, c'est pourquoi je n'ai pu cibler ma demande. Cependant la vocation de cette liste en cascade doit me permettre dans un premier temps de filtrer et rechercher un matériel dans une liste et ensuite d'apporter quelques renseignements dans les cellules "blabla" et "Resultat".

@Theze: Il m'arrive de passer proche d'un village portant votre pseudo lorsque je me déplace sur "PAU", il doit y avoir une raison. Concernant votre proposition, rien a dire et a redire, tout simplement parfait. Je ne peux que vous féliciter. Maintenant à moi de regarder comment et avec quoi vous avez réussi ce tour de force.

Encore un grand merci à vous deux

Cordialement
 

machin

XLDnaute Nouveau
Re : Liste en cascade

Bonjour,

@Dranreb: Encore désolé, mais je ne connais pas les filtres automatiques, juste filtre simple. Comme dit lors du post précédent, je ne savais trop comment résoudre ma problématique, mon niveau est très faible en Excel et VBA et le fichier joint en annexe est le résultat de plusieurs contributions glanés sur le site et adapté.

@These: Je n'ai pas malheureusement pas l'occasion de passer par Sisteron

Merci à vous deux
Bien à vous
 

Dranreb

XLDnaute Barbatruc
Re : Liste en cascade

Comme je ne connais pas les manoeuvres à effectuer sur votre version d'Excel pour installer les flèches du filtre automatique, je vous indique la procédure qui le fait sur une plage sélectionnée, titres compris (c'est sur les titres que se mettent les flèches):
VB:
Sub Macro1()
Selection.AutoFilter
End Sub
 

JCGL

XLDnaute Barbatruc
Re : Liste en cascade

Bonjour à tous,

Mise en application de la proposition de Dranreb :

Capture 2.png

A+ à tous
 

Pièces jointes

  • Capture 2.png
    Capture 2.png
    20.3 KB · Affichages: 88
  • Capture 2.png
    Capture 2.png
    20.3 KB · Affichages: 88
  • JC Liste en cascade.xls
    69.5 KB · Affichages: 44
Dernière édition:

machin

XLDnaute Nouveau
Re : Liste en cascade

Bonsoir Dranreb & JCGL,

En cherchant un peu il fallait simplement sélectionner la plage de données avec les titres et sur l'onglet "Accueil" choisir "Filtrer". Je me retrouve donc bien bête.
Conclusion: Ma problématique était bien identifiée mais ne connaissant pas toutes les possibilités offertes par Excel, je me suis "embourbé" dans des solutions certes qui donnent satisfactions mais plus complexe.

Merci pour votre "bouée", je devrais maintenant résoudre mon petit problème tout seul
Bien à vous
 

Discussions similaires

Réponses
21
Affichages
1 K
Réponses
2
Affichages
312

Statistiques des forums

Discussions
312 492
Messages
2 088 931
Membres
103 984
dernier inscrit
maliko67