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 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
Sub Filtre()
Dim Cl_Recup As Workbook
Dim Cl_Filtre As Workbook
Dim Fe_Recup As Worksheet
Dim Fe_Filtre As Worksheet
Dim Plg As Range
Set Cl_Filtre = ActiveWorkbook
Set Fe_Filtre = Cl_Filtre.Worksheets("Feuil1")
'ajoute un nouveau classeur pour recevoir les valeurs filtrées
Set Cl_Recup = Workbooks.Add
'défini la feuille "Feuil1" comme cible pour
'la récupération des valeurs filtrées
Set Fe_Recup = Cl_Recup.Worksheets("Feuil1")
'défini la plage à filtrer (toutes les cellules utilisées)
Set Plg = Plage(Fe_Filtre)
With Plg
'exécute le filtrage (9 = I, adapter la valeur cherchée)
.AutoFilter 9, "Valeur cherchée"
'copie les valeurs filtrées dans le nouveau classeur
Fe_Filtre.AutoFilter.Range.EntireRow.Copy Fe_Recup.[A1]
'supprime le filtrage
.AutoFilter
End With
'envoi du classeur, "Moi même" <- adapter le nom
Cl_Recup.SendMail "Moi même", "Mon classeur"
End Sub
Function Plage(Fe As Worksheet) As Range
With Fe
Set Plage = .Range(.Cells(1, 1), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
End Function |
Partager