Option Explicit
Sub Essai()
Dim DicTit As Dictionary, L As Long, C As Long, TRés(1 To 500, 1 To 12), _
Doss As SsGr, Maille As SsGr, Site As SsGr, Tranche As SsGr, Détail
Set DicTit = GigIdx.DicInvent(Feuil1.[A5:G9], 6, 6)
L = 1
For C = 1 To 6: TRés(L, C) = Choose(C, "Étiquette de ligne", "Maille", "Site", "Tranche", "Titre DA"): Next C
VerserTitres TRés, DicTit
For Each Doss In GigIdx.Gigogne(Null, 1, 2, 3, 4)
For Each Maille In Doss.Co
For Each Site In Maille.Co
For Each Tranche In Site.Co
L = L + 1
TRés(L, 1) = Doss.ID
TRés(L, 2) = Maille.ID
TRés(L, 3) = Site.ID
TRés(L, 4) = Tranche.ID
TRés(L, 5) = Tranche.Co(1)(5)
For Each Détail In Tranche.Co
TRés(L, DicTit(Détail(6))) = Détail(7)
Next Détail, Tranche, Site, Maille, Doss
Feuil1.[A30].Resize(500, 12).Value = TRés
End Sub
Sub VerserTitres(T(), ByVal D As Dictionary)
Dim TK(), K As Long, DC As Long
TK = D.Keys: DC = D(TK(0))
For K = 0 To UBound(TK): T(1, K + DC) = TK(K): Next K
End Sub