Bonjour Leakim, VBL
Vois ceci :
Option Explicit
Sub test()
Dim a, b(), i As Long, n As Long, dico As Object
Set dico = CreateObject("Scripting.Dictionary")
dico.CompareMode = 1
a = Sheets("Programme").Range("a3").CurrentRegion.Value
ReDim b(1 To UBound(a, 1), 1 To 3)
For i = 2 To UBound(a, 1)
If Not IsEmpty(a(i, 5)) Then
If Not dico.exists(a(i, 5)) Then
n = n + 1
b(n, 1) = a(i, 5): b(n, 3) = a(i, 2)
dico(a(i, 5)) = n
Else
b(dico(a(i, 5)), 3) = b(dico(a(i, 5)), 3) + a(i, 2)
End If
End If
Next
With Sheets("Formateur Ext").Range("b2").CurrentRegion
With .Offset(2)
.Resize(.Rows.Count - 3, .Columns.Count - 1).ClearContents
.Resize(n, UBound(b, 2)).Value = b
End With
End With
Set dico = Nothing
End Sub
klin89