Ciao
oltre quanto proposto da BySal (cari saluti):
la colonna D del tuo foglio "è sporca" e le date non sono date per excel.
Prima di fare qualsiasi cosa ti suggerisco in una colonna a parte di moltiplicare x 1 i dati di tale colonna e poi ricopiarli come valori in col. D.
Ciò premesso, filtrare per date con vba è un bel pasticcio perchè excel "ragiona in inglese".
Il seguente codice eseguito nel foglio "Report", ti filtra il foglio "Archivio" sulla base dell'anno scritto in B3 e della rata scritta in C3.
A questo punto puoi con un lopp scorrere le righe filtrate di "Archivio" e copiarle dove vuoi.
saluti
Sub filter()
Dim ws As Worksheet, ur As Long, mFrom As String, mTo As String
Set ws = Sheets("Archivio")
ur = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
mYear = Range("B3")
mFrom = ">=01/01/" & mYear
mTo = "<=12/31/" & mYear
Rata = Range("C3")
ws.Range("$A$1:$AF$" & ur).AutoFilter Field:=4, _
Criteria1:=mFrom, _
Operator:=xlAnd, _
Criteria2:=mTo
ws.Range("$A$1:$AF$" & ur).AutoFilter Field:=8, _
Criteria1:="=" & Rata
......
......
......
[Modificato da dodo47 01/02/2021 17:44]
Domenico
Win 10 - Excel 2016