Sub TEST()
Dim source As Range, xarea, max&, i&, t, n&, j&
'remplissage du tableau
With Feuil1
Set source = .Range("a1").CurrentRegion.SpecialCells(xlCellTypeVisible)
For Each xarea In source.Areas: max = max + xarea.Rows.Count: Next xarea
ReDim tsource(1 To max, 1 To source.Columns.Count)
For Each xarea In source.Areas
t = xarea.Value
For i = 1 To xarea.Rows.Count
n = n + 1
For j = 1 To xarea.Columns.Count: tsource(n, j) = t(i, j): Next j
Next i
Next xarea
End With
'Affichage sur Feuil2
Feuil2.UsedRange.Clear
Feuil2.Range("a1").Resize(UBound(tsource), UBound(tsource, 2)) = tsource
End Sub