Attention également, car, si on lance la procédure depuis la feuil2 ta macro ne fonctionnera pas.
En effet, l'instruction
premierelignevide = Cells(Rows.Count, 1).End(xlUp).Row
fonctionne sur la feuille active lors du lancement de ta macro.
Donc, il te faut indiquer le nom de la feuille pour vraiment récupérer la bonne ligne :
Sub Copier_coller_boucle()
'Objectif : Pour chaque ligne avec la mention "Absent" dans la Feuil2, rajouter le code article manquant dans la Feuil1
Dim j As Long
Dim premierelignevide As Long
With Sheets("Feuil2") 'ICI
premierelignevide = .Cells(Rows.Count, 1).End(xlUp).Row
End With
For j = 4 To 20
If Sheets("Feuil2").Cells(j, 3) = "Absent" Then
premierelignevide = premierelignevide + 1
Sheets("Feuil2").Cells(j, 1).Copy
Sheets("Feuil1").Cells(premierelignevide, 1).PasteSpecial
End If
Next j
End Sub