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