Sub Change()
Dim cel As Range, c As Range, derlig As Long, lig As Long, col As Long
Application.ScreenUpdating = False
With Feuil1
derlig = .Range("a" & Rows.Count).End(xlUp).Row
Set plage = .Range("a1:ap" & derlig)
For Each c In plage
Set cel = .Cells(c.Row, c.Column).Find("D", , xlValues, xlWhole, xlByColumns, xlPrevious)
If Not cel Is Nothing Then
If cel.Column = 2 Or cel.Column = 10 Or cel.Column = 18 _
Or cel.Column = 26 Or cel.Column = 34 Then
For lig = 7 To 13
If .Cells(4, cel.Column).Value = Cells(lig, "AP").Value Then
.Cells(lig, cel.Column) = "D"
End If
Next lig
End If
End If
End If
Next col
Next lig
End With
End Sub