VBA – Filtres Automatiques

Written by

Mel Jenkins

Reviewed by

Steve Rynearson

Translated by

David Gagnon

Last updated on janvier 12, 2022

En VBA, vous pouvez utiliser le Filtre Automatique d’Excel pour filtrer une plage de cellules ou un tableau Excel.

Remarque : Si vous souhaitez apprendre à utiliser un filtre avancé en VBA, cliquez ici : Filtre avancé en VBA

Créer un Filtre Automatique en VBA

Tout d’abord, nous allons montrer comment créer un filtre automatique sur une plage, afin qu’un utilisateur puisse filtrer les données. Les données que nous utiliserons dans les exemples sont présentées dans l’image 1 :

Voici le code pour créer un filtre automatique:

Feuil1.Range("A1:E1").AutoFilter

Afin d’activer le filtre automatique, nous devons spécifier l’en-tête de la plage, dans notre cas A1:E1, et utiliser la méthode AutoFilter de l’objet Range. En conséquence, notre plage de données a des filtres activés :

Image 2. AutoFiltre 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 les paramètres Field et Criteria1 de la méthode AutoFilter. Dans cet exemple, nous souhaitons filtrer la troisième colonne (Produit) pour le n’afficher que le produit A. Voici le code :

Feuil1.Range("A1:E1").AutoFilter Field:=3, _
                                     Criteria1:="Produit A"

Dans le paramètre Field, vous pouvez mettre le numéro de la colonne dans la plage de données (pas dans Excel), tandis que dans Criteria1 vous pouvez mettre la valeur que vous voulez filtrer. Après avoir exécuté le code, notre tableau ressemble à ceci :

Image 3. AutoFiltre avec champ et critères

Comme vous pouvez le voir, seules les lignes avec le produit A dans la troisième colonne sont affichées dans la plage de données.

Filtre Automatique avec Champ et Valeurs de Critères Multiples

Si vous souhaitez filtrer un champ avec plusieurs valeurs, vous devez utiliser le paramètre Operator de la méthode AutoFilter. Pour filtrer plusieurs valeurs, vous devez définir Operator sur xlFilterValues et placer toutes les valeurs de Criteria dans un tableau. Dans cet exemple, nous filtrons la colonne Produit pour n’afficher que le Produit A et le Produit B. Voici l’exemple de code :

Feuil1.Range("A1:E1").AutoFilter Field:=3, _
                                    Criteria1:=Array("Produit A", "Produit B"), _
                                    Operator:=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

Filtre Automatique d’une Plage de Données avec Plusieurs Critères

Si vous voulez filtrer un champ avec plusieurs critères, vous devez utiliser les paramètres Criteria1 et Criteria2, mais aussi l’opérateur xlAnd.

Dans l’exemple suivant, nous allons filtrer la première colonne (Date) pour obtenir les dates correspondant à décembre 2018. Par conséquent, nous avons deux critères à spécifier : une date supérieure au 01/12/18 et inférieure au 31/12/18. Voici le code :

Feuil1.Range("A1:E1").AutoFilter Field:=1, _
                                 Criteria1:=">=12/01/2018", _
                                 Operator:=xlAnd, _
                                 Criteria2:="<=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 date

Les Valeurs du Paramètre Operator de la Méthode AutoFilter

Dans le tableau suivant, vous pouvez voir toutes les valeurs possibles du paramètre Operator de la méthode AutoFilter et leurs descriptions :

Opérateur Description
xlAnd Inclut plusieurs critères – Critère 1 et Critère 2
xlOr Inclut un des critères multiples – Critère 1 ou Critère 2
xlTop10Items Filtre un certain nombre de valeurs les mieux classées (nombre spécifié dans le critère 1)
xlBottom10Items Filtre un certain nombre de valeurs les moins bien classées (nombre spécifié dans le critère 1)
xlTop10Percent Filtre un certain pourcentage des valeurs les mieux classées (% spécifié dans le Critère 1)
xlBottom10Percent Filtre un certain pourcentage des valeurs les plus basses (% spécifié dans le critère 1)
xlFilterValues Inclut plusieurs valeurs de critères avec Array
xlFilterCellColor Filtre les cellules par leur couleur d’arrière-plan
xlFilterFontColor Filtre les cellules par leur couleur de police
xlFIlterIcon Filtre les icônes
xlFilterDynamic Filtre les valeurs dynamiques

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro - A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users! vba save as


Learn More!
vba-free-addin

Module Complémentaire d'Exemples de Code VBA

Accédez facilement à tous les exemples disponibles sur le site.

Naviguez simplement dans le menu, cliquez, et le code sera inséré directement dans votre module. Module complémentaire .xlam.

(Aucune installation requise!)

Téléchargement gratuit

Retour aux exemples de code VBA