''''''''' avec tableau de variable
Dim T() As Variant, Ls As Long, Z As Range, Cel As Range
ReDim T(1 To 3, 1 To 5000) As Variant
Ls = 0
For Each Z In Range("A5:A" & Range("A5").End(xlDown).Row).SpecialCells(xlCellTypeVisible).Areas
For Each Cel In Z
Ls = Ls + 1
T(1, Ls) = Cel.Value
T(2, Ls) = Cel.Offset(0, 1).Value
T(3, Ls) = Cel.Offset(0, 2).Value
Next Cel
Next Z
ReDim Preserve T(1 To 3, 1 To Ls) As Variant
Range("A30").Resize(UBound(T, 2), UBound(T, 1)) = Application.Transpose(T)