Bonjour,
J'ai codé une petite application en VBA qui me permet de réaliser des filtres automatique mais sans un aspect "feuille Excel".
ouskel'n'or m'a aidé à résoudre pas mal de petits soucis (ici).
Mais il me reste une problématique:
J'ai un tableau et dans un userform 10 combobox qui correspondent chacune à une colonne de mon tableau. C'est combobox sont alimentées de telle façon qu'il n'y ait pas de doublon et classé par ordre alphabétiques.
Toutes ces combobox fonctionne très bien indépendamment (le résultat du filtre s'affiche dans une listebox) mais je souhaiterais qu'elle fonctionne comme un filtre automatique sous Excel. C'est à dire que dès que je sélectionne une combobox, les autres se recalcule en fonction du résultat.
Je met le programme en pièce jointe et le code de la fonction qui remplit ses combobox
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub UserForm_Initialize() Dim Plage As Range Set Plage = Range("A1").CurrentRegion RemplirListe RechercheC1, Plage, 1 RemplirListe RechercheC2, Plage, 2 RemplirListe RechercheC3, Plage, 4 RemplirListe RechercheC4, Plage, 5 RemplirListe RechercheC5, Plage, 6 RemplirListe RechercheC6, Plage, 7 RemplirListe RechercheC7, Plage, 8 RemplirListe RechercheC8, Plage, 9 RemplirListe RechercheC9, Plage, 10 RemplirListe RechercheC10, Plage, 13 Call Rechercher End SubMerci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Sub RemplirListe(Liste As ComboBox, Plage As Range, Colonne As Long) Dim j As Long With Plage 'Tri sur la colonne .Sort key1:=.Cells(1, Colonne), order1:=xlAscending, Header:=xlYes 'Ajoute la 1ere entree (2eme ligne) Liste.AddItem .Cells(2, Colonne) For j = 3 To .Rows.Count - 1 'Ne charge pas les cellules vides If IsEmpty(.Cells(j, Colonne)) Then Exit For 'Filtre les doublons If .Cells(j, Colonne) <> .Cells(j - 1, Colonne) Then Liste.AddItem .Cells(j, Colonne) Next End With End Sub![]()
Partager