Bonjour,
Il faut rechercher la dernière ligne avant de supprimer les doublons.
Voici votre code modifié et quelque peu amélioré:
Sub CopierCellules()
Dim f1 As Worksheet, f2 As Worksheet
Dim Derlig&
Application.ScreenUpdating = False
Set f1 = Sheets("Planning")
Set f2 = Sheets("Personnel")
With f2
Derlig = .Range("A1").CurrentRegion.Rows.Count + 1
.Range(Cells(Derlig, "A"), Cells(Derlig, "C")).Value = Array(f1.Range("B4").Value, f1.Range("B5").Value, f1.Range("B8").Value)
.Range(Cells(Derlig + 1, "C"), Cells(Derlig + 6, "C")).Value = Range(f1.Cells(10, "B"), f1.Cells(15, "B")).Value
Derlig = .Range("A1").CurrentRegion.Rows.Count + 1 'il faut recalculer la dernière ligne
.Range("A2:C" & Derlig).RemoveDuplicates Columns:=Array(1, 2, 3), Header:=xlNo
End With
'on refait le traçage des séparations des colonnes
With Range("A1:G1000")
.Borders(xlEdgeLeft).Weight = xlMedium
.Borders(xlEdgeRight).Weight = xlMedium
.Borders(xlInsideVertical).Weight = xlMedium
End With
'on libère la mémoire
Set f1 = Nothing
Set f2 = Nothing
End Sub
Cdlt