Bonjour hari,
Vite fait donc sans doute mal fait.
Voir le fichier joint. Le code est dans module1.
Sub Bilan()
Dim t, dico As New Dictionary, i&, clef, v#, s, jj&, hh&
t = Feuil1.Range("a1").CurrentRegion.Value2
Set dico = CreateObject("scripting.dictionary")
dico.CompareMode = TextCompare
For i = 2 To UBound(t)
clef = Join(Array(t(i, 4), t(i, 1)), "\")
If Not dico.Exists(clef) Then dico.Add clef, 0
v = dico(clef) + t(i, 5) + t(i, 6) - t(i, 2) - t(i, 3)
dico(clef) = v
Next i
With Feuil2
.Activate
.Range("a1").CurrentRegion.ClearContents
ReDim r(1 To dico.Count + 1, 1 To 3)
r(1, 1) = "Qui": r(1, 2) = "Tâche": r(1, 3) = "En jour & heure"
i = 1
For Each clef In dico.Keys
i = i + 1
s = Split(clef, "\")
r(i, 1) = s(0): r(i, 2) = s(1)
jj = Int(dico(clef)): hh = Int((dico(clef) - jj) / (1# / 24) + 0.5)
If hh > 24 Then jj = jj + 1: hh = 0
r(i, 3) = jj & " J et " & hh & "H"
Next
.Range("a1").Resize(UBound(r), UBound(r, 2)) = r
End With
End Sub