VBA : Comment utiliser le filtre automatique avec plusieurs critères



Vous pouvez utiliser les méthodes suivantes pour utiliser AutoFilter dans VBA avec plusieurs critères :

Méthode 1 : utiliser le filtre automatique avec plusieurs critères dans une seule colonne

Sub FilterMultipleCriteria()

With Range("A1:C11")
    .AutoFilter Field:=1, Criteria1:=Array("A", "C"), Operator:=xlFilterValues
End With

End Sub

Cette macro particulière filtrera toutes les lignes de la plage A1:C11 où la valeur de la première colonne est égale à « A » ou « C ».

Méthode 2 : utiliser le filtre automatique avec plusieurs critères dans plusieurs colonnes

Sub FilterMultipleCriteria()

With Range("A1:C11")
    .AutoFilter Field:=1, Criteria1:="A"
    .AutoFilter Field:=2, Criteria1:="Guard"
End With

End Sub

Cette macro particulière filtrera la plage A1:C11 pour afficher uniquement les lignes où la première colonne est égale à « A » et la deuxième colonne est égale à « Garde ».

Les exemples suivants montrent comment utiliser chacune de ces méthodes en pratique avec l’ensemble de données suivant dans Excel :

Exemple 1 : utiliser le filtre automatique avec plusieurs critères dans une colonne

Supposons que nous souhaitions filtrer l’ensemble de données pour afficher uniquement les lignes dont la première colonne est égale à « A » ou « C ».

Nous pouvons créer la macro suivante pour ce faire :

Sub FilterMultipleCriteria()

With Range("A1:C11")
    .AutoFilter Field:=1, Criteria1:=Array("A", "C"), Operator:=xlFilterValues
End With

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

Notez que l’ensemble de données a été filtré pour afficher uniquement les lignes dont la première colonne est égale à « A » ou « C ».

Remarque : Nous n’avons inclus que deux valeurs possibles dans la fonction Array() , mais n’hésitez pas à en inclure autant que vous le souhaitez.

Exemple 2 : utiliser le filtre automatique avec plusieurs critères dans plusieurs colonnes

Supposons que nous souhaitions filtrer l’ensemble de données pour afficher uniquement les lignes où la valeur de la colonne Équipe est égale à A et la valeur de la colonne Position est égale à Garde.

Nous pouvons créer la macro suivante pour ce faire :

Sub FilterMultipleCriteria()

With Range("A1:C11")
    .AutoFilter Field:=1, Criteria1:="A"
    .AutoFilter Field:=2, Criteria1:="Guard"
End With

End Sub

Lorsque nous exécutons cette macro, nous recevons le résultat suivant :

J’ai remarqué que l’ensemble de données a été filtré pour afficher uniquement les lignes où la valeur dans la colonne Équipe est égale à A et la valeur dans la colonne Position est égale à Garde.

Remarque : Vous pouvez trouver la documentation complète de la méthode VBA AutoFilter ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans VBA :

VBA : Comment filtrer les tableaux croisés dynamiques
VBA : Comment effacer les filtres
VBA : comment supprimer les valeurs en double

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *