Bonjour,
Une proposition VBA + TCD !?
Cdlt.
Option Explicit
Public Sub ConsolidateData()
Dim lo As ListObject, lo2 As ListObject
Dim r As Range
Dim tbl As Variant, arr() As Variant
Dim I As Long, J As Long, k As Long
Set lo = Worksheets("Input").ListObjects("T_Data")
Set lo2 = Worksheets("Output").ListObjects("T_CA")
With lo2
If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
Set r = .InsertRowRange.Cells(1)
End With
tbl = lo.Range.Value
For I = 2 To UBound(tbl)
For J = 3 To UBound(tbl, 2)
If tbl(I, J) <> "" Then
ReDim Preserve arr(4, k + 1)
arr(0, k) = tbl(I, 1)
arr(1, k) = tbl(I, 2)
arr(2, k) = tbl(1, J)
arr(3, k) = tbl(I, J)
k = k + 1
End If
Next J
Next I
If k > 0 Then r.Resize(k, 4).Value = Application.Transpose(arr)
With Worksheets("Output")
.PivotTables("PT_1").RefreshTable
.Activate
.Cells(1).Select
End With
End Sub