Re,
Une proposition pour nettoyer.
A tester.
Cdlt.
Option Explicit
Public Sub XXX()
Dim lastCol As Integer, lastRow As Long, lCol As Integer, lRow As Long
Dim cn As Integer, rw As Long, k As Long
Dim rng As Range
Dim tbl As Variant, arr() As Variant
Dim I As Long
Application.ScreenUpdating = False
With ActiveSheet
lCol = 2: lRow = 2
lastCol = .Cells(lRow, .Columns.Count).End(xlToLeft).Column
For cn = lCol To lastCol
lastRow = .Cells(.Rows.Count, cn).End(xlUp).Row
Set rng = .Cells(lRow, cn).Resize(lastRow - 1)
tbl = rng.Value
For I = 2 To UBound(tbl)
If Len(tbl(I, 1)) > 0 And IsNumeric(tbl(I, 1)) Then
ReDim Preserve arr(k)
arr(k) = tbl(I, 1)
k = k + 1
End If
Next I
rng.Offset(1).ClearContents
.Cells(lRow + 1, cn).Resize(k).Value = Application.Transpose(arr)
Erase arr: k = 0
Next cn
End With
End Sub