Private Sub CommandButton1_Click()
Transfert "L", Sheets("FAn 04").Range("A9:A23,A33:A47")
Transfert "P", Sheets("FAn 05").Range("A9:A23,A33:A47")
Transfert "R", Sheets("FAn 06").Range("A9:A23,A33:A47")
End Sub
Private Sub Transfert(col$, zone As Range)
Dim plage As Range, cel As Range, c As Range
Intersect(zone.EntireRow, zone.Parent.Columns("A:J")).ClearContents 'effacement des valeurs
On Error Resume Next
Set plage = Cells(9, col).Resize(65000).SpecialCells(xlCellTypeConstants)
If Err Then Exit Sub
For Each cel In plage
Set c = zone.Cells(1, 1)
If c <> "" Then Set c = zone.Find("", LookIn:=xlFormulas) 'recherche la prochaine cellule vide
If Not c Is Nothing Then c.Resize(, 10) = Cells(cel.Row, 1).Resize(, 10).Value 'copie la ligne
Next
End Sub