Avant-Propos

Lorsque l’on doit exporter des données suivant des critères, la solution la plus simple à mettre en place et la plus rapide au niveau exécution est l’utilisation des filtres avancés d’excel soit en VBA la méthode AdvancedFilter de l’objet Range.
Scénario : Nous souhaitons exporter les données se trouvant en cellules A1:F261 de la feuille nommée [db] vers la feuille nommée [Export] avec les critères se trouvant en cellules A1:B3 de la feuille nommée [Param]

Si vous ne connaissez pas les filtres avancés d’excel, je vous invite à lire ce didacticiel  Les filtres avancés ou élaborés dans Excel

Code de la procédure

Sub ExportByAdvancedFilter()
 ' Déclaration des variables
 Dim rngData As Range, rngCriteria As Range, rngExport As Range
 ' Attribution des références aux variables objets
 With ThisWorkbook
  Set rngData = .Worksheets("db").Range("A1").CurrentRegion ' Equivalent de Ctrl + *
  Set rngCriteria = .Worksheets("Param").Range("A1:B3")
  Set rngExport = .Worksheets("Export").Range("A1")
 End With
 rngExport.Worksheet.Cells.Clear ' Supprime les cellules de la feuille Export
 rngData.AdvancedFilter xlFilterCopy, rngCriteria, rngExport
 Set rngData = Nothing: Set rngCriteria = Nothing: Set rngExport = Nothing
End Sub

Illustration de la liste de données

AdvancedFilter - feuille Data et Param