Filtre automatique avec plusieurs critères dans VBA

Iqra Hasnain 8 octobre 2023
Filtre automatique avec plusieurs critères dans VBA

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.

exemples de données pour utiliser le filtre automatique dans VBA

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:

filtre automatique activé sur les exemples de données dans VBA

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:

utiliser le filtre automatique avec certains critères dans VBA

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:

filtre automatique activé avec plusieurs valeurs sur des exemples de données dans VBA

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.

exemples de données pour utiliser le filtre automatique avec une plage de dates dans VBA

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:

filtre automatique activé avec plage de dates sur des exemples de données dans VBA

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.

  1. L’opérateur xlAnd peut filtrer avec plusieurs critères tels que Criteria1 et Criteria2.
  2. L’opérateur xlOr peut filtrer avec l’un ou l’autre critère.
  3. L’opérateur xlTop10Items nous aidera à filtrer le nombre particulier de valeurs les mieux classées à partir des critères.
  4. L’opérateur xlBottom10Items nous aidera à filtrer le nombre particulier de valeurs les moins bien classées à partir des critères.
  5. L’opérateur xlTop10Percent nous aidera à filtrer le pourcentage particulier des valeurs les mieux classées à partir des critères.
  6. L’opérateur xlBottom10Percent nous aidera à filtrer le pourcentage particulier des valeurs les moins bien classées à partir des critères.
  7. L’opérateur xlFilterValues va nous aider à filtrer les critères à plusieurs valeurs.
  8. L’opérateur xlFilterCellColor va nous aider à filtrer les critères en fonction des couleurs des cellules.
  9. L’opérateur xlFilterFontColor va nous aider à filtrer les critères en fonction des couleurs de police.
  10. L’opérateur xlFIlterIcon va nous aider à filtrer les critères en fonction des icônes de police.
  11. L’opérateur xlFilterDynamic va nous aider à filtrer les valeurs dynamiques.