Option Compare Text 'la casse est ignorée (sécurité)
Sub RECAP(feuille$, deb As Range)
Dim i&, j&, k&, n&
Application.ScreenUpdating = False
deb(2).Resize(Rows.Count - deb.Row, 4).Delete xlUp 'RAZ
With Sheets(feuille)
i = .Range("D" & .Rows.Count).End(xlUp).Row + 2
For i = i To 3 Step -1
If .Range("D" & i) <> "" Then 'dernière ligne effective
.Range("Y3:Y" & i).Copy deb(2)
.Range("J3:J" & i).Copy deb(2, 2)
.Range("Q3:Q" & i).Copy deb(2, 3)
.Range("T3:T" & i).Copy deb(2, 4)
deb.Resize(i - 1, 4).Sort deb, xlAscending, Header:=xlYes 'tri
'---regroupement des doublons EOTP---
For j = 2 To i - 1
For k = j + 1 To i - 1
If deb(k) <> deb(j) Then Exit For
deb(j, 2) = deb(j, 2) + deb(k, 2)
deb(j, 3) = deb(j, 3) + deb(k, 3)
deb(j, 4) = deb(j, 4) + deb(k, 4)
deb(k) = "zzzz" 'repère la cellule doublon EOTP
n = n + 1 'comptage
Next k
j = k - 1
Next j
deb.Resize(i - 1, 4).Sort deb, Header:=xlYes 'nouveau tri pour regrouper et accélérer la suppression
'---ligne du TOTAL---
deb(i) = "TOTAL"
deb(i, 2).Resize(, 3) = "=SUM(R[" & 2 - i & "]C:R[-1]C)"
deb(i).Resize(, 4).Interior.ColorIndex = 45 'brun
deb(i).Resize(, 4).Borders.Weight = xlThin
'---suppression des cellules EOTP repérées---
If n Then deb.EntireColumn.Find("zzzz", , xlValues).Resize(n, 4).Delete xlUp
Exit For
End If
Next i
End With
End Sub