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
Commentaires récents