Bonjour à tous
Je cherche un moyen d'effectuer plusieurs filtres sur des colonnes d'un fichier à l'aide d'une macro excel
Je voudrais notamment pouvoir effectuer un filtre sur une colonne, laisser à l'utilisateur la possibilité de voir
les résultats et lui laisser la possibilité d'ajouter un second, troisième... filtres etc
Du coup je voudrais que mes combobox non utilisées par le premier filtre change et ne mette que les valeurs disponible suite au filtre
je vous donne un exemple pour faire simple
on a les colonnes
NOM VILLE
Martin Montpellier
Martin Paris
José Lille
On effectue un filtre sur les nom en cherchant toutes les personnes s'appelant Martin grâce a la ComboBox qui permet de
filtrer les noms on se retrouve avec
NOM VILLE
Martin Montpellier
Martin Paris
Le soucis c'est que à ce moment ma 2ème ComboBox pour filtrer les villes proposeras Montpellier, Paris ET Lille
alors que Lille ne fait plus partis des villes disponibles
Voila le code que j'utilise pour initialiser/update mes ComboBox
Note : Si je fais comme ça c'est pour pas avoir les doublons de mes colonnes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ComboBoxPart_No.ColumnCount = 1 Set f = Sheets("EXTRACT_CR") Set MonDico = CreateObject("Scripting.Dictionary") a = f.Range("A2:A" & f.[A65000].End(xlUp).Row) For I = LBound(a) To UBound(a) If a(I, 1) <> "" Then MonDico(a(I, 1)) = "" Next I ComboBoxPart_No.List = MonDico.keys
Je pensais juste changer la 4ème ligne et rajouter ".SpecialCells(xlVisible)" mais ça ne fonctionne que pour les villes du début
CAD : j'applique mon filtre sur mon tableaux de 5 lignes ça me retire la ligne 3. Si j'update ma ComboBox après le filtre
en utilisant SpecialsCells(xlVisible) je vais récupérer que les résultat des lignes 1 et 2 mais pas les lignes 4 et 5 pour des raisons qui m'échappe
Voila désolé pour le paragraphe de 50 lignes mais c'est tellement spécifique que j'ai considéré qu'il fallait que je raconte tout
Merci a ceux qui prennent le temps de lire/répondre
Gardez le feux brûlant dans votre cœur
Partager