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 :

Colonne de filtre VBA basée sur la valeur de la cellule

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.

Colonne de filtre VBA basée sur plusieurs critères

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

Ajouter un commentaire

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