Sub MacroCopie()
Dim Cel As Range, lg As Integer
On Error Resume Next
With Feuil3 'Feuil3 est le CodeName (nom attribué par Excel et non modifiable) de la feuille Verificat
'Toutes les adresses précédées d'un point se rattachent à cette feuille
.Unprotect "123"
For Each Cel In ActiveSheet.Range("D6:D" & Rows.Count).SpecialCells(xlCellTypeConstants)
'Cette boucle lit toutes les cellules non vides de la feuille affichée à l'écran
'dans la colonne PRENOM, de la ligne 6 et vers le bas
lg = .Range("D" & Rows.Count).End(xlUp).Row + 1 'lg est le numéro de la première ligne vide de Feuil3
If lg < 5 Then lg = 4 'si lg est inférieur à 5 alors on se positionne sur la ligne 4
Cel.Offset(0, -1).Resize(1, 7).Copy Destination:=.Range("D" & lg)
'Cel.Offset(0, -1).Resize(1, 7) cette instruction définit les colonnes à copier
'puisque la lecture se fait en colonne D, on repart de C --> Cel.Offset(0, -1)
'et on étend de 7 colonnes à droite --> .Resize(1, 7)
Next
.Protect "123"
End With
End Sub