Bonjour,
Essaie ainsi :
Public Sub TransposeData()
Dim tbl, arr()
Dim cn As Long, rw As Long, k As Long
With ActiveSheet
.Cells(12).CurrentRegion.Offset(1).ClearContents
tbl = .Cells(1).CurrentRegion.Value
For cn = 5 To UBound(tbl, 2)
For rw = 2 To UBound(tbl)
If tbl(rw, cn) <> "" Then
ReDim Preserve arr(7, k + 1)
arr(0, k) = VBA.Split(tbl(1, cn))(0)
arr(1, k) = tbl(rw, 1)
arr(2, k) = tbl(rw, 2)
arr(3, k) = tbl(rw, 3)
arr(4, k) = tbl(rw, 4)
arr(5, k) = VBA.Split(tbl(1, cn))(1)
arr(6, k) = tbl(rw, cn)
k = k + 1
End If
Next rw
Next cn
.Cells(2, 12).Resize(k, 7).Value = Application.Transpose(arr)
End With
End Sub