Bonjour,
Je te propose cette correction
Sub miseajour()
Dim i As Long, lig, col As Integer, j As Integer, dl As Long
With Sheets("Ecriture")
dl = Range("A" & Rows.Count).End(xlUp).Row
.Range("C6:C" & dl).ClearContents: .Range("H6:H" & dl).ClearContents: .Range("M6:M" & dl).ClearContents
.Range("R6:R" & dl).ClearContents: .Range("W6:W" & dl).ClearContents: .Range("AB6:AB" & dl).ClearContents
.Range("AG6:AG" & dl).ClearContents
For i = 6 To dl '.Range("A" & Rows.Count).End(xlUp).Row
lig = Application.Match(.Range("A" & i).Value, Sheets("Criteres").Columns(1), False)
If Not IsError(lig) Then
For j = 4 To 25
If Sheets("Criteres").Cells(lig, j).Value <> "" Then
For col = 3 To 37 Step 5
If .Cells(i, col).Value = "" Then
.Cells(i, col).Value = Sheets("Criteres").Cells(lig, j).Value
Exit For
End If
Next col
End If
Next j
End If
Next i
End With
End Sub
A mettre dans ton module. En ciblant la feuille, tu peux lancer la macro depuis n'importe où.
Leakim