VBA – Filtres Automatiques
In this Article
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!Learn More!