Comment créer des zones de liste dynamiques en cascade dans Excel?
Vous savez peut-être comment créer une liste déroulante de validation en cascade dans Excel. Cependant, comment créer des zones de liste en cascade dynamiques dans Excel? Cet article présente une méthode VBA pour le faire descendre.
Créer des zones de liste en cascade dynamiques avec du code VBA
Créer des zones de liste en cascade dynamiques avec du code VBA
Comme illustré ci-dessous, vous devez créer une zone de liste parent contenant les valeurs uniques de la colonne Boisson et afficher toutes les valeurs correspondantes dans la deuxième zone de liste en fonction de la sélection dans la zone de liste parent. Le code VBA suivant vous aide à y parvenir. Veuillez faire comme suit.
1. Tout d'abord, vous devez extraire toutes les valeurs uniques de la colonne Drink. Sélectionnez une cellule vide, entrez une formule matricielle =IFERROR(INDEX($A$2:$A$11, MATCH(0,COUNTIF($J$1:J1, $A$2:$A$11), 0)),"") into the Barre de formule, puis appuyez sur Ctrl + Shift + Entrer clé. Faites ensuite glisser le Poignée de remplissage pour obtenir toutes les valeurs uniques. Voir la capture d'écran:
Notes: Dans la formule, $A$2:$A$11 est la plage à partir de laquelle vous extrairez les valeurs uniques. J1 est la cellule au-dessus où se trouve votre formule.
Conseil : Si la formule est trop difficile à retenir et à manipuler, le Sélectionnez les cellules dupliquées et uniques utilité de Kutools for Excel sera un bon choix pour extraire rapidement toutes les valeurs uniques d'une colonne.
Veuillez sélectionner la colonne contenant les valeurs uniques dont vous allez extraire. Puis activez l'utilitaire en cliquant sur Kutools > Sélectionnez > Sélectionnez les cellules dupliquées et uniques. Dans le Sélectionnez les cellules dupliquées et uniques boîte de dialogue, sélectionnez le Tous uniques (y compris les premiers doublons) option et cliquez sur le OK bouton. Ensuite, toutes les valeurs uniques sont sélectionnées dans la colonne. Veuillez les copier et les coller dans un nouvel emplacement. Voir la capture d'écran:
Kutools for Excel: avec plus de 200 compléments Excel pratiques, essai gratuit sans limitation dans 60 jours. Téléchargez et essayez gratuitement maintenant!
2. Insérez deux zones de liste séparément en cliquant sur Développeur > insérer > Zone de liste (contrôle ActiveX). Voir la capture d'écran:
3. Cliquez avec le bouton droit sur la zone de liste parent et sélectionnez Propriétés dans le menu contextuel. dans le Propriétés boîte de dialogue, modifiez le (Nom) champ à Boire ou tout autre nom selon vos besoins, entrez la plage de cellules contenant les valeurs uniques extraites dans le ListRemplirPlage et fermez la boîte de dialogue.
4. Répétez l'étape 3 pour modifier la deuxième zone de liste (Nom) champ à Item dans le Propriétés boite de dialogue.
5. Cliquez avec le bouton droit sur l'onglet de la feuille et sélectionnez Voir le code dans le menu contextuel. Copiez ensuite le code VBA ci-dessous dans la fenêtre Code. Voir la capture d'écran:
Code VBA: créer des zones de liste dynamiques en cascade dans Excel
Dim xPreStr As String
Private Sub Drink_Click()
'Update by Extendoffice 2018/06/04
Dim I, xRows As Long
Dim xRg As Range
Dim xRegStr As String
Application.ScreenUpdating = False
xRegStr = Me.Drink.Text
Set xRg = Range("A2:A11")
xRows = xRg.Rows.Count
If xRegStr <> xPreStr Then
Me.Item.Clear
'Me.OtherListBoxName.Clear
Set xRg = xRg(1)
For I = 1 To xRows
If xRg.Offset(I - 1).Value = xRegStr Then
Me.Item.AddItem xRg.Offset(I - 1, 1).Value
'Me.OtherListBoxName.AddItem xRg.Offset(I - 1, 2).Value
End If
Next
xPreStr = xRegStr
End If
Application.ScreenUpdating = True
End Sub
Florales: Dans le code Drink et Item sont les noms de deux list box, changez-les en vos propres noms.
6. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.
7. Désactivez le mode de conception en cliquant sur Développeur > Mode de conception.
À partir de maintenant, lors de la sélection de tout type de boisson comme le café dans la liste des parents, tous les articles de café seront affichés dans le second. Sélectionnez Thé ou Vin affichera uniquement les articles de thé ou de vin dans la deuxième zone de liste. Voir la capture d'écran:
Articles Liés:
- Comment effacer la cellule de liste déroulante dépendante après avoir sélectionné modifié dans Excel?
- Comment créer des listes déroulantes en cascade dépendantes dans Excel?
- Comment remplir automatiquement d'autres cellules lors de la sélection de valeurs dans la liste déroulante Excel?
- Comment créer un calendrier de liste déroulante dans Excel?
- HComment enregistrer ou conserver des sélections de zones de liste ActiveX dans Excel?
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!