Sub For_X_to_Next_Colonne()
Dim TE(), LE&, CE&, TS(), LS&, CS&
TE() = Feuil1.[D5:M67].Value
ReDim TS(1 To 150000, 1 To 6)
For CE = 5 To UBound(TE, 2)
For LE = 3 To UBound(TE, 1) - 1
If TE(LE, CE) <> 0 Then
LS = LS + 1
TS(LS, 1) = TE(1, CE)
For CS = 2 To 5: TS(LS, CS) = TE(LE, CS - 1): Next CS
TS(LS, 6) = TE(LE, CE)
End If: Next LE, CE
Feuil2.Cells.ClearContents
Feuil2.[B2].Resize(LS, 6).Value = TS
End Sub