Option Explicit
Sub Test7()
Dim deb As Single
deb = Timer
Application.ScreenUpdating = False
Dim ShtDA As Worksheet
Set ShtDA = ThisWorkbook.Worksheets("DA") ' ..................... Feuille DA
Dim dLig As Long
dLig = ShtDA.Range("F" & Rows.Count).End(xlUp).Row ' ............ Derniére ligne non vide
Dim Filtre As Range
Set Filtre = ShtDA.Range(ShtDA.Cells(4, 5), ShtDA.Cells(dLig, 8)) ' .. Zone de séléction pour Filtre
Filtre.AutoFilter Field:=4, Criteria1:="<>" ' .............. Filtre sur Place
Dim Plage As Range
Set Plage = Filtre.SpecialCells(xlCellTypeVisible) ' .......... Cellule visible de la zone de Filtre
Filtre.AutoFilter ' ............................... Suppression du filtre
Dim ShtResult As Worksheet
Set ShtResult = Worksheets("Résultat")
Dim t(), temp() As Variant
ReDim temp(1 To Plage.Areas.Count, 1 To Plage.Areas(1).Count)
Dim i, j As Long
ReDim t(1 To Plage.Areas.Count)
For i = LBound(t) To UBound(t)
t(i) = Plage.Areas(i).Value
For j = LBound(temp, 2) To UBound(temp, 2)
temp(i, j) = t(i)(1, j)
'temp(i, j) = Plage.Areas(i)(1, j)
Next j
Next i
ShtResult.Cells(1, 1).Resize(UBound(temp, 1), UBound(temp, 2)) = temp
Application.ScreenUpdating = True
MsgBox "Durée construction du tableau résultat r = " & Format(Timer - deb, "0.000\ sec.")
End Sub