Bonjour,
Mais enregistrer dans un autre fichier les résultats obtenu et uniquement les résultats
Il suffit de copier et coller le résultat sur une feuille d'un autre classeur :
Sub CopieFiltre()
Dim ClSource As Workbook
Dim ClCible As Workbook
Dim Plage As Range
Dim Critere As String
'utilisation de variables pour éviter la confusion
Set ClSource = ThisWorkbook
Set ClCible = Workbooks.Add
'adapter le critère
Critere = "Le critère"
'défini la plage sur toute la feuille
Set Plage = DefPlage(ClSource.Worksheets("Feuil1"))
With ClSource.Worksheets("Feuil1")
'filtrage sur la colonne 1 de la plage (ici A)
Plage.AutoFilter 1, "=" & Critere
'copie du résultat dans la feuille "Feuil1" du nouveau classeur
'attention, la copie embarque les entêtes
.AutoFilter.Range.EntireRow.Copy ClCible.Worksheets("Feuil1").Cells(1, 1)
'suppression du filtrage
Plage.AutoFilter
End With
End Sub
Function DefPlage(Fe As Worksheet, Optional L As Long = 1, Optional C As Long = 1) As Range
On Error GoTo Fin
With Fe
Set DefPlage = .Range(.Cells(L, C), _
.Cells(.Cells.Find("*", .[A1], -4123, , _
1, 2).Row, .Cells.Find("*", .[A1], -4123, , _
2, 2).Column))
End With
Exit Function
Fin:
Set DefPlage = Nothing
End Function
fonctionne très bien sur PC, quid de Mac ?