Sub test()
Dim der&, t, i&, j&, n&
Application.ScreenUpdating = False
With Sheets("Data")
der = Application.Match(String(255, "z"), Sheets("Data").Columns(1))
t = Sheets("Data").Range("a1:g" & der)
ReDim r(1 To der * 3, 1 To 5)
n = n + 1: r(1, 1) = "Month": r(1, 2) = t(1, 1): r(1, 3) = t(1, 2): r(1, 4) = t(1, 3): r(1, 5) = "QTY"
For i = 2 To UBound(t)
For j = 5 To 7
If t(i, j) <> "" Then n = n + 1: r(n, 1) = t(1, j): r(n, 2) = t(i, 1): r(n, 3) = t(i, 2): r(n, 4) = t(i, 3): r(n, 5) = t(i, j)
Next j
Next i
End With
With Sheets("Sortie")
If .FilterMode Then .ShowAllData
.Columns("a:e").Clear: .Columns(3).Resize(n).NumberFormat = "@"
.Columns("a:e").Resize(n) = r
.Columns("a:e").Resize(n).Sort key1:=.Range("a1"), order1:=xlAscending, Header:=xlYes
.Columns("a:e").Resize(n).AutoFilter
.Activate
End With
End Sub