Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim PL As Range 'déclare la variable PL (PLage)
Set O = Worksheets("Feuil1") 'définit l'onglet O
Set PL = O.Range("A1").CurrentRegion 'définit la plage PL
O.Range("J1").CurrentRegion.Clear 'efface les anciennes données
If O.FilterMode = True Then 'condition : si au moins un filtre a été activé
PL.SpecialCells(xlCellTypeVisible).Copy 'copie la plage PL
O.Range("J1").PasteSpecial (xlPasteValues) 'colle les valeurs à partir de J1
O.ShowAllData 'supprime le(s) filtrea9s) automatique(s)
Else 'sinon
MsgBox "Aucun filtre n'a éte activé !" 'message
End If 'fin de la condition
End Sub