Méthode Range.AutoFilter (Excel)

Filtrer une liste à l'aide du filtre automatique.

Syntaxe

expression.AutoFilter (Field, Criteria1, Operator, Criteria2, SubField, VisibleDropDown)

expression Expression qui renvoie un objet Range.

Paramètres

Nom Requis/Facultatif Type de données Description
Field Facultatif Variant Offset d'entier du champ sur lequel vous voulez baser le filtre (à partir de la gauche de la liste ; le champ le plus à gauche est le champ un).
Criteria1 Facultatif Variant Le critère (une chaîne ; par exemple, « 101 »). Utilisez "=" pour rechercher des champs vides, "<>" pour trouver les champs non vides, et "><" pour sélectionner des champs (Aucune donnée) dans les types de données.

Si cet argument est omis, le critère est « Tous ». Si le paramètre Operator a la valeur xlTop10Items, Criteria1 spécifie le nombre d'élément (par exemple, « 10 »).
Opérateur Facultatif XlAutoFilterOperator Une constante XlAutoFilterOperator qui spécifie le type de filtre.
Criteria2 Facultatif Variant Le second critère (une chaîne). Utilisé avec Criteria1 et Operator pour construire un critère composé. Également utilisé en tant que critère unique sur les champs de date qui filtrent par jour, mois ou année. Suivi par un tableau expliquant le filtrage Tableau(Niveau, Date). Où la valeur Niveau est comprise entre 0-2 (année,mois,date) et Date entre la période de filtrage.
subField Facultatif Variant Le champ d’un type de données sur lequel appliquer les critères (par exemple, le champ « Population » dans Géographie ou « Volume » dans Actions boursières). L’omission de cette valeur cible « (Valeur d’affichage) ».
VisibleDropDown Facultatif Variant True pour afficher la flèche déroulante du filtre automatique pour le champ filtré. False pour masquer la flèche déroulante. True par défaut.

Valeur renvoyée

Variant

Remarques

Si vous ne définissez aucun argument, cette méthode active ou désactive simplement l'affichage des flèches déroulantes du filtre automatique dans la plage spécifiée.

Excel pour Mac ne prend pas en charge cette méthode. Des méthodes similaires sur Selection et ListObject sont prises en charge.

Contrairement aux formules, les sous-champs ne nécessitent pas de crochets pour inclure des espaces.

Exemple

Cet exemple permet de filtrer une liste commençant à la cellule A1 de Sheet1 pour afficher uniquement les entrées dans lesquelles le champ 1 contient la chaîne Otis. La flèche déroulante du champ 1 sera masquée.

Worksheets("Sheet1").Range("A1").AutoFilter _
 Field:=1, _
 Criteria1:="Otis", _
 VisibleDropDown:=False

Cet exemple permet de filtrer une liste commençant à la cellule A1 de Sheet1 pour afficher uniquement les entrées dans lesquelles les valeurs du champ 1 contiennent un sous-champ, à savoir Division d’administration 1 (État/province/autre), où la valeur est Washington.

Worksheets("Sheet1").Range("A1").AutoFilter _
 Field:=1, _
 Criteria1:="Washington", _
 SubField:="Admin Division 1 (State/province/other)"

Cet exemple permet de filtrer un tableau (Tableau1) sur une Feuille1 pour afficher uniquement les entrées dans lesquelles les valeurs du champ un ont un « (Affichage valeur) », qui est 1, 3, Seattle ou Redmond.

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:=Array("1", "3", "Seattle", "Redmond"), _
 Operator:=xlFilterValues

Les types de données peuvent s’appliquer à plusieurs filtres de sous-champ. Cet exemple permet de filtrer un tableau (Tableau1) sur une Feuille1 pour afficher uniquement les entrées dans lesquelles les valeurs du champ 1 contiennent un sous-champ Fuseau(x) horaire(s), où la valeur est Horaire du Pacifique et où le sous-champ Date de fondation est soit 1851, soit (Aucune donnée).

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:="Pacific Time Zone", _
 SubField:="Time Zone(s)"
Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:=Array("1851", "><"), _
 Operator:=xlFilterValues, _
 SubField:="Date founded"

Cet exemple permet de filtrer un tableau (Tableau1) sur une Feuille1 pour afficher les 10 premières entrées du champ 1 avec le sous-champ Population.

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria1:="10", _
 Operator:=xlTop10Items, _
 SubField:="Population"

Cet exemple filtre un tableau, Tableau1, sur Feuil1, afin d’afficher toutes les entrées correspondant à Janvier 2019 et Février 2019 dans le premier champ. Il n’est pas nécessaire d’avoir une ligne contenant le 31 janvier.

Worksheets("Sheet1").ListObjects("Table1").Range.AutoFilter _
 Field:=1, _
 Criteria2:=Array(1, "1/31/2019", 1, "2/28/2019") 

Assistance et commentaires

Avez-vous des questions ou des commentaires sur Office VBA ou sur cette documentation ? Consultez la rubrique concernant l’assistance pour Office VBA et l’envoi de commentaires afin d’obtenir des instructions pour recevoir une assistance et envoyer vos commentaires.