Sub CopyTableFiltered()
Dim DtFirst As Long, DtLast As Long
DtFirst = Sheets("Orig").Range("J1").Value
DtLast = Sheets("Orig").Range("K1").Value
With ActiveWorkbook.Worksheets("Orig").ListObjects("Tabela1")
.Range.AutoFilter field:=1, Criteria1:=">=" & DtFirst, Operator:=xlAnd, Criteria2:="<=" & DtLast
Union(.HeaderRowRange, .DataBodyRange.SpecialCells(xlVisible)).Copy Sheets("Dest").Range("A1")
End With
End Sub
edit post posting:
a more robust version:
Sub CopyTableFiltered()
Dim DtFirst As Long, DtLast As Long, RngToCopy As Range
DtFirst = Sheets("Orig").Range("J1").Value
DtLast = Sheets("Orig").Range("K1").Value
With ActiveWorkbook.Worksheets("Orig").ListObjects("Tabela1")
.Range.AutoFilter field:=1, Criteria1:=">=" & DtFirst, Operator:=xlAnd, Criteria2:="<=" & DtLast
On Error Resume Next
Set RngToCopy = Union(.HeaderRowRange, .DataBodyRange.SpecialCells(xlVisible))
On Error GoTo 0
If Not RngToCopy Is Nothing Then
RngToCopy.Copy Sheets("Dest").Range("A1")
Else
MsgBox "No records found"
End If
End With
End Sub