Comment appliquer et supprimer le filtre des données à l'aide de VBA?

Table des matières

Filtre VBA Excel

L' outil Filtre VBA est utilisé pour trier ou pour récupérer les données spécifiques souhaitées, la fonction de filtre automatique est utilisée comme une fonction de feuille de calcul, cependant cette fonction a d'autres arguments avec elle qui sont facultatifs et le seul argument obligatoire est l'expression qui couvre la plage par exemple feuilles de calcul («Sheet1»). Plage («A1»). Le filtre automatique appliquera le filtre sur la première colonne.

Le filtre dans VBA fonctionne de la même manière qu'il fonctionne dans la feuille de calcul. La seule chose différente est que nous pouvons automatiser la tâche de routine de filtrage des données par codage.

AutoFilter est une fonction qui inclut de nombreuses valeurs de syntaxe. Vous trouverez ci-dessous les paramètres impliqués dans la fonction de filtre automatique.

  • La gamme est la première chose que nous devons fournir pour utiliser l'option «Filtre automatique». Il s'agit simplement de la plage de cellules pour laquelle nous devons appliquer le filtre, par exemple Plage («A1: D50»).
  • Le champ est le premier argument de la fonction. Une fois que la plage de cellules est sélectionnée via l'objet VBA RANGE, nous devons mentionner pour quelle colonne de la plage nous voulons appliquer le filtre.
  • Le critère 1 n'est rien d'autre que dans le champ sélectionné , la valeur que vous voulez filtrer.
  • L'opérateur est utilisé dans le cas où vous souhaitez utiliser l' argument Critère 2 . Dans cette option, nous pouvons utiliser les options ci-dessous.
    xlAnd, xlOr, xlBottom10Items, xlTop10Items, xlTop10Percent, xlBottom10Percent, xlFilterCellColor, xlFilterDynamic, xlFilterFontColor, xlFilterIcon, xlFilterValues
  • La liste déroulante visible permet d'afficher ou non un symbole de filtre dans la colonne de filtre appliqué. Si vous souhaitez afficher, vous pouvez fournir l'argument comme TRUE ou bien FALSE.

Exemples de filtrage des données à l'aide de VBA

Exemple # 1 - Appliquer ou supprimer un filtre aux données

Si vous souhaitez appliquer l'option de filtre aux données, nous pouvons désactiver et activer cette option. Par exemple, regardez l'image de données ci-dessous.

Étape 1: Fournissez la plage de données

Pour activer d'abord l'option de filtre, nous devons fournir quelle est notre plage de données. Dans l'image ci-dessus, nos données sont réparties de A1 à G31, alors fournissez cette plage en utilisant un objet RANGE.

Code:

Sub Filter_Example () Range ("A1: G31") End Sub
Étape 2: accédez ensuite à la fonction de filtre automatique

Accédez maintenant à la fonction Filtre automatique pour cette plage.

Code:

Sub Filter_Example () Range ("A1: G31"). AutoFilter End Sub
Étape 3: exécutez le code pour activer le filtre

C'est tout. Exécutez ce code pour activer le filtre automatique.

Ce code fonctionne comme une bascule, et si le filtre n'est pas appliqué, il s'appliquera. S'il est déjà appliqué, il sera supprimé.

Exemple # 2 - Filtrer les valeurs spécifiques

Nous allons maintenant voir comment utiliser les paramètres de l'option Filtre automatique. Prenez les mêmes données que ci-dessus. Par exemple, nous devons maintenant filtrer tous les noms de genre «Masculin».

Étape 1: Sélectionnez la plage et ouvrez la fonction de filtre automatique
Étape 2: Sélectionnez ensuite le champ

Dans le premier argument de la fonction, c'est-à-dire Field, nous devons mentionner la référence de colonne que nous aimerions filtrer. Dans cet exemple, nous devons filtrer uniquement les candidats «Hommes», c'est-à-dire la colonne «C», donc le numéro de colonne est 3.

Étape 3: Mentionnez maintenant les critères

Maintenant, pour ce champ fourni, nous devons mentionner le critère 1, c'est-à-dire quelle valeur nous devons filtrer dans le champ mentionné . Nous devons filtrer «Homme» de cette colonne.

Code:

Sub Filter_Example () Range ("A1: G31"). Champ de filtre automatique: = 3, Criteria1: = "Male" End Sub
Étape 4: et exécutez le code

Ok, c'est tout. Ce code filtrera désormais uniquement les candidats «hommes».

Exemple # 3 - Utilisation de l'argument OPERATOR

When you want to filter out more than one value from the column, we need to use the “Operator” argument. For example, from the column “Major,” we need to filter only “Math & Politics,” then we need to use this argument.

Step 1: Select Range and Autofilter Field

First, supply the Range of cells and fields.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, End Sub
Step 2: Enter Criteria 1 as Math

For the mentioned filed, we need to supply Criteria 1 as “Math.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", End Sub
Step 3: Use Operator xl

Since we need to filter one more value from the same column or field, use the operator symbol as “xlOr.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr End Sub
Step 4: Enter Criteria 2 as Politics

And for Criteria 2 argument mention the value as “Politics.”

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=5, Criteria1:="Math", Operator:=xlOr, Criteria2:="Politics" End Sub

This will filter out both “Math” & “Politics” from column “Major.”

Example #4 - Filter Numbers with Operator Symbols

For example, if you want to filter numbers with, then we can filter a specific number as well as numbers above, below, or between specific values and range of values.

For example, from the age column, if you want to filter persons aged more than 30, then we can write the code like below.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">30" End Sub

This will filter all the values that are more than 30.

Now, if you want to filter values between 21 and 31, then we can use the below code.

Code:

Sub Filter_Example() Range("A1:G31").AutoFilter Field:=7, Criteria1:=">21", Operator:=xlAnd, Criteria2:="<31" End Sub

This will filter persons aged between 21 and 30.

Example #5 - Apply Filter for More Than One Column

If you want to filter values from more than one column criteria, then we need to use a slightly different technique.

If you want to filter “Student Status” as “Graduate” and “Country” as “US,” then first, we need to supply the RANGE of cells under the “WITH” statement.

Code:

Sub Filter_Example() With Range("A1:G31") End With End Sub

Maintenant, dans l'instruction WITH, fournissez les premiers critères à filtrer.

Code:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" End With End Sub

Dans la ligne suivante, faites de même pour "Pays" en remplaçant "Champ" par 6 et Critères par "US".

Code:

Sub Filter_Example () With Range ("A1: G31") .AutoFilter Field: = 4, Criteria1: = "Graduate" .AutoFilter Field: = 6, Criteria1: = "US" End With End Sub

Désormais, cela filtrera "Diplômé" uniquement pour le pays "États-Unis".

Choses dont il faut se rappeler

  • La première chose d'abord uniquement pour la plage de filtres de cellules mentionnée sera appliquée.
  • Le champ ne correspond pas à la colonne dans laquelle vous souhaitez filtrer les données.
  • Si vous filtrez les valeurs de plusieurs colonnes, utilisez With.

Articles intéressants...