Sub transformation()
Dim tbl, tablo, Lig&, Q&, A&, C, Ids, NdosS, Colonnes, LigneS
With Range("tbs[#all]")
tablo = .Value
ReDim tbl(1 To UBound(tablo) * 10, 1 To UBound(tablo, 2))
For Lig = 1 To UBound(tablo)
Ids = Split(tablo(Lig, 8), Chr(10))
NdosS = Split(tablo(Lig, 7), Chr(10))
For Q = 0 To UBound(Ids)
A = A + 1
For C = 1 To UBound(tablo, 2)
tbl(A, C) = tablo(Lig, C)
tbl(A, 8) = Ids(Q)
tbl(A, 7) = NdosS(Q)
Next
Next
Next
Colonnes = Array(8, 7, 1, 2, 3, 4, 5, 6, 9) 'matrice colonns(ordre différent)
LigneS = Evaluate("ROW(1:" & A & ")") 'matrice de lignes
tbl = Application.Index(tbl, LigneS, Colonnes) 'restructuration du tableau avec les matrices(nouvel ordre)
'on envoie la sauce dans la cells(1)redimentionnée du tableau
With .Cells(1, 1).Resize(A, 9): .Value = tbl: .HorizontalAlignment = xlCenter: End With
'comme le tableau structuré a été supprimé on reconverti cette plage en tableau du même nom
.Parent.ListObjects.Add(xlSrcRange, .Cells(1, 1).Resize(A, 9), , xlYes).Name = "TbS"
MsgBox "Et c'est encore un militaire qui gagne une tringle à rideau" & vbCrLf & " LOL !!"
End With
End Sub