Comment filtrer une colonne à l’aide de VBA (avec exemples)
Vous pouvez utiliser les méthodes suivantes pour filtrer par colonne dans Excel à l’aide de VBA :
Méthode 1 : Filtrer en fonction de la valeur d’une colonne
Sub FilterRows()
ActiveSheet.Range("A1:C11").AutoFilter field:=1, Criteria1:=Range("F2").Value
End Sub
Cette macro particulière filtrera la plage A1:C11 pour afficher uniquement les lignes dont la première colonne est égale à la valeur de la cellule F2 .
Méthode 2 : filtrer basé sur plusieurs valeurs de colonnes
Sub FilterRows()
ActiveSheet.Range("A1:C11").AutoFilter field:=1, Criteria1:=Range("F2").Value, _
Operator:=xlOr, Criteria2:=Range("F3").Value
End Sub
Cette macro particulière filtrera la plage A1:C11 pour afficher uniquement les lignes dont la première colonne est égale à la valeur de la cellule F2 ou F3 .
Méthode 3 : effacer les filtres
Sub ClearFilters()
ActiveSheet.AutoFilterMode = False
End Sub
Cette macro particulière effacera tous les filtres de la feuille actuelle.
Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.
Exemple 1 : filtre basé sur la valeur d’une colonne
Supposons que nous disposions d’un ensemble de données contenant des informations sur divers joueurs de basket-ball et que nous souhaitions filtrer l’ensemble de données pour qu’il ne contienne que les lignes dont la valeur dans la colonne Équipe est égale à A :
Nous pouvons créer la macro suivante pour ce faire :
Sub FilterRows()
ActiveSheet.Range("A1:C11").AutoFilter field:=1, Criteria1:=Range("F2").Value
End Sub
Lorsque nous exécutons cette macro, l’ensemble de données sera automatiquement filtré pour contenir uniquement les lignes dont la valeur dans la colonne Équipe est égale à A :
Exemple 2 : filtre basé sur plusieurs valeurs de colonnes
Supposons que nous souhaitions filtrer l’ensemble de données pour qu’il contienne uniquement les lignes dont la valeur dans la colonne Équipe est égale à A ou C :
Nous pouvons créer la macro suivante pour ce faire :
Sub FilterRows()
ActiveSheet.Range("A1:C11").AutoFilter field:=1, Criteria1:=Range("F2").Value, _
Operator:=xlOr, Criteria2:=Range("F3").Value
End Sub
Lorsque nous exécutons cette macro, l’ensemble de données est automatiquement filtré pour afficher uniquement les lignes dont la valeur dans la colonne Équipe est égale à A ou C.
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 actualiser les tableaux croisés dynamiques
VBA : Comment filtrer les tableaux croisés dynamiques
VBA : comment supprimer les valeurs en double