Filtre automatique avec plusieurs critères dans VBA
![Filtre automatique avec plusieurs critères dans VBA](/img/VBA/feature-image---vba-autofilter-multiple-criteria.webp)
Nous allons vous présenter comment utiliser AutoFilter
pour filtrer une plage de cellules ou un tableau Excel en VBA.
Filtre automatique avec plusieurs critères dans VBA
Il existe de nombreuses situations dans lesquelles nous devons utiliser des filtres dans Excel lorsque nous travaillons sur un code VBA. Si nous voulons obtenir les données de vente pour une date spécifique, nous devons utiliser un filtre de date sur une colonne de date dans VBA.
VBA apporte une solution à ce problème en utilisant un AutoFilter
.
Nous commencerons par comprendre comment utiliser le filtre automatique dans une plage afin qu’un utilisateur puisse filtrer les données. Prenons quelques données, pour commencer, comme indiqué ci-dessous.
Comme indiqué ci-dessous, nous allons utiliser la méthode Range
de la feuille pour sélectionner la plage sur laquelle nous voulons appliquer un AutoFilter
.
# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter
End Sub
Production:
Nous devons désigner l’en-tête de la plage, qui dans notre cas est A1:C1
, et utiliser la technique AutoFilter
de la plage d’objets pour appliquer le filtre automatique. Cela se traduira par l’activation de filtres pour notre gamme, comme indiqué ci-dessus.
Filtre automatique avec champ et critères dans VBA
VBA nous permet également de filtrer des champs spécifiques avec des valeurs particulières. Pour ce faire, nous devons définir le champ auquel nous voulons appliquer le filtre.
Nous définirons également les critères en fonction desquels nous souhaitons appliquer un filtre. Si nous souhaitons filtrer la deuxième colonne pour Laptop
uniquement, nous pouvons exécuter le code comme indiqué ci-dessous.
# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:="Laptop"
End Sub
Production:
Comme nous pouvons le voir sur l’exemple ci-dessus, nous avons pu utiliser le Filtre automatique
avec les valeurs souhaitées en définissant les valeurs du champ et des critères. Le résultat est affiché ci-dessus avec le filtre utilisant les critères que nous avons fournis dans notre code VBA.
Filtre automatique avec plusieurs critères dans VBA
Supposons que nous voulions définir plusieurs critères pour notre filtre. Dans ce cas, nous pouvons le faire en utilisant un autre opérateur de paramètre dans AutoFilter
lorsque nous devons filtrer un champ avec plusieurs valeurs.
Nous pouvons utiliser l’opérateur xlFilterValues
et transmettre les valeurs au paramètre Criteria
dans un tableau pour filtrer en fonction de ces valeurs, comme indiqué ci-dessous.
# VBA
Sub test()
Sheet1.Range("A1:C1").AutoFilter Field:=2, Criteria1:=Array("Laptop", "iPhone"), _
Operator:=xlFilterValues
End Sub
Production:
Comme nous pouvons le voir dans l’exemple ci-dessus, lorsque nous exécutons le code, le Filtre automatique
est activé avec plusieurs valeurs et affiche les résultats souhaités.
Plage de dates de filtrage automatique avec plusieurs critères dans VBA
Si nous voulons utiliser AutoFilter
basé sur la plage de dates, ou si nous allons obtenir les données entre une plage de dates spécifique, nous devons utiliser plusieurs paramètres Criteria
avec un opérateur xlAnd
.
Passons en revue un exemple et ajoutons plus de données à notre feuille d’échantillons avec les dates ci-dessous.
Comme vous pouvez le voir à partir des données ci-dessus, nous avons ajouté une nouvelle colonne avec des dates. Comme indiqué ci-dessous, nous utiliserons ces dates pour filtrer les données entre le 20 et le 25 mai.
#VBA
Sub test()
Sheet1.Range("A1:D1").AutoFilter Field:=1, Criteria1:=">=05/20/2022", Operator:=xlAnd, Criteria2:="<=05/25/2022", Operator:=xlFilterValues
End Sub
Production:
Comme nous pouvons le voir dans l’exemple ci-dessus, nous pouvons facilement filtrer les données dans la plage de dates en fournissant deux critères de dates et en utilisant le paramètre Operator
avec la valeur xlAnd
.
Quelques paramètres Opérateur
et leur description sont décrits ci-dessous.
- L’opérateur
xlAnd
peut filtrer avec plusieurs critères tels queCriteria1
etCriteria2
. - L’opérateur
xlOr
peut filtrer avec l’un ou l’autre critère. - L’opérateur
xlTop10Items
nous aidera à filtrer le nombre particulier de valeurs les mieux classées à partir des critères. - L’opérateur
xlBottom10Items
nous aidera à filtrer le nombre particulier de valeurs les moins bien classées à partir des critères. - L’opérateur
xlTop10Percent
nous aidera à filtrer le pourcentage particulier des valeurs les mieux classées à partir des critères. - L’opérateur
xlBottom10Percent
nous aidera à filtrer le pourcentage particulier des valeurs les moins bien classées à partir des critères. - L’opérateur
xlFilterValues
va nous aider à filtrer les critères à plusieurs valeurs. - L’opérateur
xlFilterCellColor
va nous aider à filtrer les critères en fonction des couleurs des cellules. - L’opérateur
xlFilterFontColor
va nous aider à filtrer les critères en fonction des couleurs de police. - L’opérateur
xlFIlterIcon
va nous aider à filtrer les critères en fonction des icônes de police. - L’opérateur
xlFilterDynamic
va nous aider à filtrer les valeurs dynamiques.