Sub Essai()
Dim a, i As Long, j As Long, txt As String, n As Long
Application.ScreenUpdating = False
a = Range("A1").CurrentRegion.Value
With CreateObject("Scripting.Dictionary")
.CompareMode = 1
For i = 1 To UBound(a, 1)
txt = Join$(Array(a(i, 2), a(i, 3), a(i, 4)), Chr(2))
If Not .exists(txt) Then
n = n + 1
.Item(txt) = n
For j = 1 To UBound(a, 2)
a(n, j) = a(i, j)
Next
Else
a(.Item(txt), 1) = a(.Item(txt), 1) + a(i, 1)
End If
Next
End With
'restitution et mise en forme
With Sheets(2).Cells(1)
.CurrentRegion.Clear
.Resize(n, UBound(a, 2)).Value = a
With .CurrentRegion
With .Rows(1)
.Font.Bold = True
.Interior.ColorIndex = 40
.BorderAround Weight:=xlThin
End With
.Font.Name = "calibri"
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.Borders(xlInsideVertical).Weight = xlThin
.BorderAround Weight:=xlThin
'.Columns.AutoFit
End With
.Parent.Activate
End With
Application.ScreenUpdating = True
End Sub