Bonjour,
Une proposition VBA.
ALT F8 et exécuter la procédure.
Cdlt.
Public Sub SynthesizeData()
Dim lo As ListObject
Dim tbl As Variant, arr() As Variant
Dim I As Long, J As Long, k As Long
Application.ScreenUpdating = False
tbl = Worksheets("Données").Cells(1).CurrentRegion.Value
Set lo = Range("Résultat").ListObject
If Not lo.DataBodyRange Is Nothing Then lo.DataBodyRange.Delete
For I = 2 To UBound(tbl)
For J = 5 To UBound(tbl, 2)
If tbl(I, J) <> "" Then
ReDim Preserve arr(6, k + 1)
arr(0, k) = tbl(I, 1)
arr(1, k) = tbl(I, 2)
arr(2, k) = tbl(I, 3)
arr(3, k) = tbl(I, 4)
arr(4, k) = tbl(1, J)
arr(5, k) = tbl(I, J)
k = k + 1
End If
Next J
Next I
lo.InsertRowRange.Cells(1).Resize(k, 6).Value = Application.Transpose(arr)
Worksheets("Résultat").PivotTables(1).PivotCache.Refresh
End Sub