En VBA, vous pouvez créer Filtre automatique afin de filtrer une plage de cellules ou un tableau Excel. Dans ce tutoriel, vous apprendrez à créer Filtre automatique pour une ou plusieurs colonnes et pour plusieurs conditions.
Si vous souhaitez apprendre à utiliser un filtre avancé en VBA, cliquez ici : Filtre avancé VBA
Création d'un filtre automatique en VBA
Tout d'abord, vous verrez comment créer simplement Filtre automatique dans une plage, afin qu'un utilisateur puisse filtrer les données. Les données que nous utiliserons dans les exemples se trouvent dans l'image 1 :
Image 1. Données pour les exemples de filtre automatique
Voici le code pour créer Filtre automatique:
1 | Sheet1.Range("A1:E1").AutoFilter |
Afin de permettre Filtre automatique, nous devons spécifier l'en-tête de la plage, dans notre cas A1:E1, et utiliser le Filtre automatique méthode de l'objet Varier. En conséquence, notre gamme de données a des filtres activés :
Image 2. AutoFilter activé pour les données
Filtre automatique avec paramètres de champ et de critères
VBA vous permet également de filtrer automatiquement un certain champ avec certaines valeurs.
Pour ce faire, vous devez utiliser des paramètres Champ et Critères1 de la méthode Filtre automatique. Dans cet exemple, nous voulons filtrer la troisième colonne (Produit) pour Produit A seul. Voici le code :
12 | Sheet1.Range("A1:E1").Champ de filtre automatique :=3, _Critères1 : ="Produit A" |
Dans le Champ paramètre, vous pouvez définir le numéro de la colonne dans la plage (pas dans Excel), tandis que dans Critères1 vous pouvez mettre la valeur que vous souhaitez filtrer. Après avoir exécuté le code, notre table ressemble à ceci :
Image 3. Filtre automatique avec champ et critères
Comme vous pouvez le voir, seules les lignes avec Produit A dans la troisième colonne sont affichés dans la plage de données.
Filtre automatique avec champs et valeurs de critères multiples
Si vous souhaitez filtrer un champ avec plusieurs valeurs, vous devez utiliser le paramètre Opérateur du Filtre automatique méthode. Pour filtrer plusieurs valeurs, vous devez définir Opérateur à xlFilterValues et aussi de mettre toutes les valeurs de Critères dans un tableau. Dans cet exemple, nous filtrons les Produit colonne pour Produit A et Produit B. Voici l'exemple de code :
123 | Sheet1.Range("A1:E1").Champ de filtre automatique :=3, _Critères1 : = Tableau("Produit A", "Produit B"), _Opérateur :=xlFilterValues |
Lorsque nous exécutons le code, nous obtenons uniquement des lignes avec le produit A et le produit B, comme vous pouvez le voir dans l'image 4 :
Image 4. Filtre automatique avec plusieurs valeurs de critères
Plage de données de filtre automatique avec plusieurs critères
Si vous souhaitez filtrer un champ avec plusieurs critères, vous devez utiliser Critères1 et Critères2 paramètres, mais aussi les Opérateur xlAnd.
Dans l'exemple suivant, nous allons filtrer la première colonne (Date) pour les dates en décembre 2022. Nous avons donc deux critères : une date supérieure au 01/12/18 et inférieure au 31/12/18. C'est le code :
1234 | Sheet1.Range("A1:E1").Champ de filtre automatique :=1, _Critères1 :=">=12/01/2018", _Opérateur :=xlAnd, _Critères2 :="<=12/31/2018" |
Lorsque nous exécutons le code, vous pouvez voir que seules les dates de décembre sont affichées dans la plage de données :
Image 5. Filtre automatique avec plusieurs critères pour le champ
Les valeurs des paramètres de l'opérateur de la méthode AutoFilter
Dans le tableau suivant. vous pouvez voir toutes les valeurs possibles du Opérateur paramètre de la méthode AutoFilter et leurs descriptions :
Opérateur | La description |
xlAnd | Comprend plusieurs critères - Critères 1 et Critères 2 |
xlOu | Comprend l'un des critères multiples - Critère 1 ou Critère 2 |
xlTop10Articles | Filtre un certain nombre de valeurs les mieux classées (nombre spécifié dans Critères1) |
xlBas10Éléments | Filtre un certain nombre de valeurs les moins bien classées (nombre spécifié dans Critères1) |
xlTop10Pourcent | Filtre un certain pourcentage des valeurs les mieux classées (% spécifié dans Critères1) |
xlBas10Pourcent | Filtre un certain pourcentage des valeurs les moins bien classées (% spécifié dans Critères1) |
xlFilterValues | Inclut plusieurs valeurs de critères avec Array |
xlCouleurCelluleFiltre | Filtre les cellules pour les couleurs |
xlFilterFontColor | Filtre les cellules pour les couleurs de police |
xlFilterIcon | Icônes de filtres |
xlFiltreDynamique | Filtrer les valeurs dynamiques |