Option Explicit
Sub Copy_F2_F1()
CopieValeursAprès Feuil1.Columns("A"), Source:=VisiblesÀPartirDe(Feuil2.[E2])
CopieValeursAprès Feuil1.Columns("M"), Source:=VisiblesÀPartirDe(Feuil2.[M2])
End Sub
Sub CopieValeursAprès(ByVal Cible As Range, ByVal Source As Range)
Dim Zone As Range, NbL As Long
Set Cible = PremierLibre(Cible)
For Each Zone In Source.Areas: NbL = Zone.Rows.Count
Cible.Resize(NbL).Value = Zone.Value: Set Cible = Cible.Offset(NbL)
Next Zone
End Sub
Function PremierLibre(ByVal Rng As Range) As Range
Set PremierLibre = Rng.Rows(Rng.Rows.Count).End(xlUp).Offset(1)
End Function
Function VisiblesÀPartirDe(ByVal Cel As Range) As Range
Dim UR As Range
Set UR = Cel.Worksheet.UsedRange
Set VisiblesÀPartirDe = Cel.Resize(UR.Rows.Count - Cel.Row + UR.Row).SpecialCells(xlCellTypeVisible)
End Function