1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| Sub FiltreAvance()
Dim FEUILLE_SOURCE As Worksheet
Dim NomFeuille As String
Dim Criteres()
' les critères
Criteres = Array("<>BAS", "<>HAUT", "<>FAUX", "<>BLOP", "<>TRUC", "<>VRAI")
' la feuille de depart : IL FAUT METTRE LE NOM REEL DE TA FEUILLE
Set FEUILLE_SOURCE = ThisWorkbook.Worksheets("LaFeuilleInitiale")
' stockage du nom de la feuille
NomFeuille = FEUILLE_SOURCE.Name
' ajout d'une feuille
With ThisWorkbook.Worksheets.Add
' recopie de l'en-tête de la colonne A
.Cells(1, 1).Resize(1, UBound(Criteres) + 1).Value = FEUILLE_SOURCE.Cells(1, 1).Value
' recopie des critères
.Cells(2, 1).Resize(1, UBound(Criteres) + 1).Value = Criteres
' export via filtre avancé
FEUILLE_SOURCE.UsedRange.AdvancedFilter xlFilterCopy, .Cells(1, 1).CurrentRegion, .Cells(4, 1), False
' nettoyage de la zone des critères
.Cells(1, 1).Resize(4, 1).EntireRow.Delete
' suppression de la feuille source
Application.DisplayAlerts = False: FEUILLE_SOURCE.Delete: Application.DisplayAlerts = True
' écriture du nom initiale de la feuille
.Name = NomFeuille
End With
End Sub |
Partager