Excel VBA : Filtre avancé avec plusieurs critères dans une plage (5 méthodes) -

  • Partage Ça
Hugh West

Lorsque vous travaillez avec de grandes quantités de données et que vous devez définir plusieurs filtres à la fois, Filtrage avancé sur Excel Elle peut également être appliquée pour nettoyer vos données en supprimant des copies. En appliquant la fonction Filtre avancé le VBA est beaucoup plus facile à exécuter. Dans ce tutoriel, nous allons vous montrer comment appliquer le code Filtre avancé VBA pour une gamme de critères multiples dans Excel .

Télécharger le cahier d'exercices

Téléchargez ce cahier d'exercices pour vous entraîner pendant que vous lisez cet article.

Filtre avancé VBA.xlsm

5 méthodes efficaces pour le filtre avancé VBA avec plusieurs critères dans une plage dans Excel

Dans les sections suivantes, nous aborderons 5 méthodes à utiliser Filtre avancé VBA pour plusieurs critères. Dans un premier temps, vous devrez peut-être connaître la syntaxe de la balise Filtre avancé VBA .

Syntaxe du filtre avancé VBA :

  • AdvancedFilter : fait référence à un objet de gamme. Vous pouvez définir votre gamme où vous voulez appliquer le filtre.
  • Action : est un argument obligatoire qui a deux options, xlFilterInPlace ou xlFilterCopy . xlFilterInPlace est utilisé pour filtrer la valeur à l'endroit où se trouve l'ensemble de données. xlFilterCopy est utilisé pour obtenir la valeur du filtre à un autre endroit souhaité.
  • CriteriaRange : représente les critères pour lesquels la valeur sera filtrée.
  • CopyToRange : est l'endroit où vous enregistrerez les résultats de votre filtre.
  • Unique : est un argument facultatif. Utilisez l'option Véritable pour ne filtrer que les valeurs uniques. Sinon, par défaut, il est considéré comme Faux .

Dans l'image ci-dessous, un échantillon de données est fourni pour appliquer tous les filtres que nous voulons effectuer.

1. appliquer un filtre avancé VBA pour les critères OR dans une plage dans Excel

Dans la première méthode, nous appliquerons le OU en utilisant les critères de Filtre avancé VBA Disons que nous voulons filtrer les données pour le nom du produit. Cookies et Chocolat Pour appliquer le OU Suivez les étapes décrites ci-dessous pour effectuer cette tâche.

Étape 1 :

  • Appuyez sur Alt + F11 pour ouvrir le Macro VBA .
  • Cliquez sur le Insérer.
  • Choisissez le Module.

Étape 2 :

  • Ensuite, collez ce qui suit VBA pour appliquer le OU.
 Sub Apply_VBA_Advanced_Filter_for_OR_Criteria() 'Déclarer une variable pour la plage de l'ensemble de données et pour la plage de critères Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Définir l'emplacement et la plage de l'ensemble de données et de la plage de critères Set Dataset_Rng = Sheets("Sheet1").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet1").Range("B14:E16") 'Appliquer le filtre avancé pour filtrer l'ensemble de données en utilisant les critèresDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Étape 3 :

  • Ensuite, enregistrez le programme et appuyez sur F5 pour courir.
  • Par conséquent, vous obtiendrez les résultats filtrés comme indiqué dans l'image ci-dessous.

Notes. Pour inverser le processus ou retirer toute la pâte filtrante et lancer le programme VBA programme.

 Sub Remove_All_Filter() On Error Resume Next 'commande pour enlever tous les filtres pour montrer l'ensemble de données précédent ActiveSheet.ShowAllData End Sub 

  • Par conséquent, vous obtiendrez la version précédente de votre ensemble de données.

Lire la suite : Exemples Excel VBA de filtre avancé avec critères (6 critères)

2. exécuter un filtre avancé VBA pour les critères AND dans une plage dans Excel

De la même manière que pour la méthode précédente, nous allons maintenant effectuer l'opération suivante VBA Filtre avancé pour le ET Disons que nous voulons connaître les cookies dont le prix est de $0.65 comme le montre la capture d'écran ci-dessous. Pour appliquer la méthode de la OU vous devez placer la valeur dans des colonnes différentes. Pour appliquer le critère ET les critères, suivez les instructions ci-dessous.

Étape 1 :

  • Pour ouvrir Macro VBA , appuyez sur Alt + F11
  • Après avoir ouvert le Macro VBA coller le texte suivant VBA dans un nouveau module.
 Sub Apply_VBA_Advanced_Filter_for_AND_Criteria() 'Déclarer une variable pour la plage de l'ensemble de données et pour la plage de critères Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Définir l'emplacement et la plage de l'ensemble de données et de la plage de critères Set Dataset_Rng = Sheets("Sheet2").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet2").Range("B14:E15") 'Appliquer le filtre avancé pour filtrer l'ensemble de données en utilisant les critèresDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Étape 2 :

  • Appuyez sur F5 pour exécuter le programme après l'avoir enregistré.
  • Enfin, obtenez les résultats filtrés.

Lire la suite : VBA pour copier des données dans une autre feuille avec un filtre avancé dans Excel

3. utiliser le filtre avancé VBA pour le critère OU avec ET dans une plage dans Excel.

Vous pouvez également appliquer le OU et le ET Par exemple, vous souhaitez obtenir les valeurs des critères suivants Cookies ou Chocolats mais pour le Cookies, il existe un autre critère prix $0.65 Suivez les procédures ci-dessous pour y parvenir.

Étape 1 :

  • Collez les éléments suivants VBA codes après avoir ouvert le Macro VBA .
 Sub Apply_VBA_Advanced_Filter_for_OR_with_AND_Criteria() 'Déclarer une variable pour la plage de l'ensemble de données et pour la plage de critères Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Définir l'emplacement et la plage de l'ensemble de données et de la plage de critères Set Dataset_Rng = Sheets("Sheet3").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet3").Range("B14:E16") 'Appliquer le filtre avancé pour filtrer l'ensemble de données en utilisant les critèresDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Étape 2 :

  • Ensuite, enregistrez d'abord le programme en appuyant sur F5 pour l'exécuter.
  • Par conséquent, vous trouverez les valeurs avec certains ET et OU.

Lire la suite : Appliquer un filtre avancé basé sur plusieurs critères dans une colonne d'Excel

Lectures similaires :

  • Filtre avancé avec plusieurs critères dans Excel (15 exemples concrets)
  • Filtre dynamique avancé Excel (VBA & ; Macro)
  • Comment utiliser le filtre avancé en VBA (un guide étape par étape)
  • Filtre avancé avec plage de critères dans Excel (18 applications)
  • Le filtre avancé d'Excel ne fonctionne pas (2 raisons & ; solutions)

4. utiliser le filtre avancé VBA pour des valeurs uniques avec des critères multiples dans Excel

De plus, si vous avez des doublons dans votre ensemble de données, vous pouvez les supprimer lors du filtrage. Nous ajouterons l'attribut Unique en son genre argument pour Véritable pour obtenir uniquement les valeurs uniques et supprimer les doublons, en suivant les instructions indiquées.

Étape 1 :

  • Tout d'abord, ouvrez le VBA Macro en appuyant sur Alt + F11.
  • Collez les éléments suivants VBA dans un nouveau module.
 Sub Apply_VBA_Advanced_Filter_for_Unique_Values() 'Déclarer une variable pour l'ensemble de données et pour l'ensemble de critères Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Définir l'emplacement et l'étendue de l'ensemble de données et de l'ensemble de critères Set Dataset_Rng = Sheets("Sheet4").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet4").Range("B14:E16") 'Appliquer le filtre avancé pour filtrer l'ensemble de données en utilisant les critèresDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng, Unique:=True End Sub 

Étape 2 :

  • Ensuite, appuyez sur F5 pour exécuter le programme après l'avoir enregistré.
  • Par conséquent, vous obtiendrez des valeurs uniquement pour l'unique.

Lire la suite : Comment utiliser un filtre avancé pour des enregistrements uniques uniquement dans Excel ?

5. exécuter le filtre avancé VBA pour le cas conditionnel

En plus des méthodes précédentes, vous pouvez également appliquer des conditions avec des formules. Par exemple, nous voulons trouver le Prix totaux qui sont supérieures à $100 Pour le faire, il suffit de suivre les étapes suivantes.

Étape 1 :

  • Tout d'abord, pour ouvrir le Macro VBA , appuyez sur Alt + F11 .
  • Sélectionnez un nouveau Module et collez ce qui suit Codes VBA .
 Sub Apply_VBA_Advanced_Filter_for_Formula() 'Déclarer les variables pour l'ensemble de données et pour l'ensemble de critères Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Définir l'emplacement et l'étendue de l'ensemble de données et de l'ensemble de critères Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Appliquer le filtre avancé pour filtrer l'ensemble de données en utilisant les critèresDataset_Rng.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Criteria_Rng End Sub 

Étape 2 :

  • Ensuite, enregistrez le programme et appuyez sur la touche F5 pour voir les résultats.

Notes. De plus, vous pouvez obtenir les résultats dans un espace favorable, que ce soit dans une nouvelle plage ou dans une nouvelle feuille de calcul, en appliquant l'option xlFilterCopy Il suffit de coller le VBA et les exécuter pour obtenir les résultats dans Feuille 6 dans la gamme B4:E11 .

 Déclarer une variable pour la plage de l'ensemble de données et pour la plage de critères Dim Dataset_Rng As Range Dim Criteria_Rng As Range 'Définir l'emplacement et la plage de l'ensemble de données et de la plage de critères Set Dataset_Rng = Sheets("Sheet5").Range("B4:E11") Set Criteria_Rng = Sheets("Sheet5").Range("B14:E15") 'Appliquer le filtre avancé pour filtrer l'ensemble de données en utilisant les critères Dataset_Rng.AdvancedFilter Action:=xlFilterCopy,CriteriaRange:=Criteria_Rng, CopyToRange:=Sheets("Sheet6").Range("B4:E11") End Sub 

  • En conséquence, voyez le résultat final dans une nouvelle feuille de travail Feuille 6 .

Lire la suite : Comment utiliser le filtre avancé si la plage de critères contient du texte dans Excel ?

Conclusion

Pour résumer, j'espère que vous comprenez maintenant comment utiliser la fonction VBA filtre avancé dans Excel pour filtrer des plages de critères multiples. Toutes ces méthodes doivent être utilisées pour l'enseignement et la pratique avec vos données. Consultez le livre de pratique et mettez en pratique ce que vous avez appris. Grâce à votre soutien vital, nous sommes inspirés pour continuer à présenter des séminaires comme celui-ci.

Si vous avez des questions, n'hésitez pas à nous contacter et faites-nous part de vos commentaires dans la section ci-dessous.

Le site Exceldemy répondra à vos demandes dans les meilleurs délais.

Restez avec nous et continuez à apprendre.

Hugh West est un formateur et analyste Excel très expérimenté avec plus de 10 ans d'expérience dans l'industrie. Il est titulaire d'un baccalauréat en comptabilité et finance et d'une maîtrise en administration des affaires. Hugh a une passion pour l'enseignement et a développé une approche pédagogique unique qui est facile à suivre et à comprendre. Sa connaissance approfondie d'Excel a aidé des milliers d'étudiants et de professionnels du monde entier à améliorer leurs compétences et à exceller dans leur carrière. Grâce à son blog, Hugh partage ses connaissances avec le monde, offrant des tutoriels Excel gratuits et une formation en ligne pour aider les particuliers et les entreprises à atteindre leur plein potentiel.