bonjour JFL, Xavier_09,
comme ceci ?
Sub Xavier()
Dim aA, aOut, Dict
Set Dict = CreateObject("scripting.dictionary")
Dict.comparemode = vbTextCompare
aA = ActiveSheet.Range("A1").CurrentRegion.Resize(, 7).Value2 'vos données
ReDim aOut(1 To UBound(aA), 1 To 3) 'array du résultat
For i = 1 To UBound(aA) 'boucler les données
If Len(aA(i, 4)) > 0 Then 'le chargeur <>""
If Not Dict.exists(aA(i, 4)) Then 'chargeur connu dans le dictionaire?
Dict(aA(i, 4)) = Dict.Count + 1 'ajouter au dictionaire avec item le nombre de keys
aOut(Dict.Count, 1) = aA(i, 4) 'assigner le chargeur a aOut
End If
ptr = Dict(aA(i, 4)) 'pointer
aOut(ptr, 2) = aOut(ptr, 2) + aA(i, 5) 'accumuler le temps 'd'arrêt (colonne E)
aOut(ptr, 3) = aOut(ptr, 3) + aA(i, 7) 'accumuler le nombre d'arrêts (colonne G)
End If
Next
With ActiveSheet.Range("L2")
.Resize(, 3).EntireColumn.ClearContents 'RAZ
.Offset(-1).Resize(, 3).Value = Array("Chargeur", "Temps perdu", "nombre d'arrêts")
.Resize(Dict.Count, 3).Value = aOut 'coller le résultat
.Resize(, 3).EntireColumn.AutoFit
.Offset(, 1).EntireColumn.NumberFormat = "[hh]:mm:ss"
With .CurrentRegion
.Sort .Range("B1"), xlDescending, Header:=xlYes
End With
End With
End Sub