Merci pour vos aides réflectives, qui m'ont permis d'identifier et surtout comprendre mes erreurs :
j'ai alors placé au bon endroits les "", et j'ai mis plus haut le "for i = 0 to 4 " en déplaçant également le "end if" qui posait problème.
Voici alors la macro qui fonctionne :
Sub remplissage_Dynamique_CHARGE()
Dim cel As Range
Dim i As Integer
With ActiveSheet
.Range("DIFF_HEBDO").ClearContents
For Each cel In Range("RECAP_FRISE")
For i = 1 To 4
If cel.Value = "COMP" & i Then
Cells(Range("DIFF_HEBDO").Row, cel.Column) = Range("DIFF_HEBDO_COMP" & i)
End If
Next i
Next
End With
End Sub
Merci encore pour vos remarques constructives.