Boa noite!!
Seria algo como isso?
Sub AleVBA_14439()
Dim lastRow As Long, lr As Long
Dim dDate1 As Long
Dim dDate2 As Long
Dim Orig As Worksheet, Dest As Worksheet
Set Orig = Worksheets("Lançamentos") 'Configura a guia de origem dos dados
Set Dest = Worksheets("Relatorio") 'Configura a guia destino dos dados
'Encontra a ultima linha de cada guia
lastRow = Orig.Range("A" & Rows.Count).End(xlUp).Row
lr = Dest.UsedRange.Rows(UBound(Dest.UsedRange.Value)).Row
'Verifica quais as datas como critério
dDate1 = DateValue(Format(Dest.Range("D7"), "dd/mm/yyyy"))
dDate2 = DateValue(Format(Dest.Range("E7"), "dd/mm/yyyy"))
'Desliga a tela de atualização
Application.ScreenUpdating = False
Dest.Activate
'Limpa as células da guia para onde os dados são copiados
With Dest.Range(Cells(10, 1), Cells(lr, 14))
.ClearContents
End With
'Filtra e Copia os dados baseados em 3 critérios (Cod, DataInc e DataFin)
With Orig
.AutoFilterMode = False
With .Range("A4:N4")
.AutoFilter
If Dest.Range("A5").Value <> vbNullString Then .AutoFilter Field:=13, Criteria1:=Dest.Range("D5").Value
If Dest.Range("A5").Value <> vbNullString Then .AutoFilter Field:=1, Criteria1:=">=" & dDate1, Operator:=xlAnd, Criteria2:="<=" & dDate2
.Offset(1, 0).Resize(.CurrentRegion.Rows.Count - 1, 1).SpecialCells(xlCellTypeVisible).EntireRow.Copy
Dest.Range("A10").PasteSpecial xlValues
End With
End With
'Liga a tela de atualização e desliga o modo de copia
With Application
.ScreenUpdating = True
.CutCopyMode = False
End With
End Sub
Att
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
Postado : 02/02/2015 6:24 pm