Sub Essai()
Dim TDon(), L&, TR(), OP As SsGr, NumDT&, DT As SsGr, NumPJ&, NumD2&, PJ As SsGr, NumD1&, TBat() As String, Détail
TDon = ColUti(TDonn5.[A2:F2]).Value
For L = 1 To UBound(TDon, 1): TDon(L, 4) = Left$(TDon(L, 3), 5): Next L
L = 0
ReDim TR(1 To 2 * UBound(TDon, 1), 1 To 8)
For Each OP In Gigogne(TDon, 5, 1, 4, Null, 3)
NumDT = 0
For Each DT In OP.Co
NumDT = NumDT + 1: NumPJ = 0: NumD2 = 0
For Each PJ In DT.Co
NumPJ = NumPJ + 1: NumD1 = 0
TR(L + 1, 6) = PJ.Id
TR(L + 1, 7) = PJ.Somme(6)
ReDim TBat(1 To PJ.Count)
For Each Détail In PJ.Co: NumD1 = NumD1 + 1
TBat(NumD1) = Détail(3) & " (" & Détail(6) & ")": Next Détail
TR(L + 1, 8) = Join(TBat, ", ")
NumD1 = -1
For Each Détail In PJ.Co
L = L + 1: NumD1 = NumD1 + 1: NumD2 = NumD2 + 1
TR(L, 1) = OP.Id
TR(L, 2) = "'" & NumDT & "." & NumPJ & "." & NumD1 & "." & NumD2
TR(L, 3) = DT.Id
TR(L, 4) = Détail(3)
TR(L, 5) = Détail(6): Next Détail, PJ
L = L + 1
TR(L, 1) = OP.Id
TR(L, 2) = "'" & NumDT
TR(L, 3) = DT.Id
TR(L, 5) = DT.Somme(6)
TR(L, 7) = TR(L, 5)
Next DT
L = L + 1: Next OP
TDonn5.[T2].Resize(UBound(TR, 1), UBound(TR, 2)).Value = TR
End Sub