Bonjourr Cabouse, curulis57
Pour le fun une version "bombe atomique"
Sub TransposerTablo()
Dim tabBase()
Dim cptBase, colBase
Dim copElem
Dim tabSwap()
Dim nbrSwap
Dim colSwap
Range(Cells(1, 11), Cells(1, 20)).EntireColumn.ClearContents
nbrSwap = 0
copElem = "+CAR +CHQ +CSH +INT +NTI -DDC -NTI -INT -SEP"
tabBase = Range(Cells(1, 1), Cells(Cells(Rows.Count, 1).End(xlUp).Row, 9))
For cptBase = 1 To UBound(tabBase, 1)
If (cptBase = 1) Or (InStr(copElem, Left(tabBase(cptBase, 1), 4)) > 0) Then
nbrSwap = nbrSwap + 1
ReDim Preserve tabSwap(1 To UBound(tabBase, 2), 1 To nbrSwap)
totSwap = 0
For colBase = 1 To UBound(tabBase, 2) - 1
tabSwap(colBase, nbrSwap) = tabBase(cptBase, colBase)
Next
End If
Next
ReDim Preserve tabSwap(1 To UBound(tabSwap, 1), 1 To UBound(tabSwap, 2) + 1)
For nbrSwap = 2 To UBound(tabSwap, 1) - 1
For colSwap = 2 To UBound(tabSwap, 2) - 1
tabSwap(nbrSwap, UBound(tabSwap, 2)) = tabSwap(nbrSwap, UBound(tabSwap, 2)) + tabSwap(nbrSwap, colSwap)
Next
Next
Cells(1, 11).Resize(UBound(tabSwap, 1), UBound(tabSwap, 2)) = tabSwap
End Sub