Bonjour à tous,
Moi je suis de la vieille école ma solution en VBA
Une variante,
Sub test()
Dim tb, ntb(), i%, k%, j%
tb = Sheets("Feuil1").ListObjects(1).Range
Sheets("Feuil2").Range("A1").CurrentRegion.Offset(1, 0).ClearContents
If Not Sheets("Feuil1").ListObjects(1).DataBodyRange Is Nothing Then
k = 0
ReDim ntb(1 To UBound(tb, 1) * UBound(tb, 2), 1 To 3)
For i = 2 To UBound(tb, 1)
For j = 2 To UBound(tb, 2)
If tb(i, j) <> "" Then
ntb(k + 1, 1) = tb(i, 1)
ntb(k + 1, 2) = tb(1, j)
ntb(k + 1, 3) = tb(i, j)
k = k + 1
End If
Next j
Next i
End If
If k > 0 Then Sheets("Feuil2").Range("A2").Resize(k, 3) = ntb
Sheets("Feuil2").Activate
Erase tb: Erase ntb
End Sub
Cordialement,