Infact I've now fixed those issues, so helpful thank you.
I'm gonna move onto Sorting & Conditional formatting, any tips or help appreciated.
Thought, I'd better post my solution:
Code:
Option ExplicitConst DATEFORMAT As String = "dd/mm/yyyy"Sub FilterData() Dim wsData As Worksheet, wsRenew As Worksheet Dim rData As Range, rFilter As Range, lngRow As Long Dim dtToday As Date, dbStart As Double, dbEnd As Double Set wsData = ThisWorkbook.Sheets("Data") Set wsRenew = ThisWorkbook.Sheets("Renew") lngRow = wsData.Cells(wsData.Rows.Count, 1).End(xlUp).Row Set rData = wsData.Range("A1:I" & lngRow) '//////////////////////////////////////////////////// '// ENTER DATE HERE ///////////////////////////////// '//////////////////////////////////////////////////// dtToday = Date dbStart = CDate(Format(DateSerial(Year(dtToday), Month(dtToday), Day(dtToday)), DATEFORMAT)) '//////////////////////////////////////////////////// dbEnd = CDate(Format(DateSerial(Year(dbStart) + 1, Month(dbStart), Day(dbStart)), DATEFORMAT)) Application.ScreenUpdating = False 'rData.AutoFilter field:=1, Criteria1:="*" rData.AutoFilter field:=5, Criteria1:=">=" & dbStart, Operator:=xlAnd, Criteria2:="<=" & dbEnd Set rFilter = wsData.Range("A2:I" & lngRow).SpecialCells(xlCellTypeVisible) If Not rFilter Is Nothing Then wsRenew.Range("2:" & wsRenew.Rows.Count).ClearContents rFilter.Copy wsRenew.Range("A2") wsRenew.Cells.EntireColumn.AutoFit End If rData.AutoFilter Application.CutCopyMode = False Application.ScreenUpdating = TrueEnd Sub
Change the Start and End Date to Double as it was still recognising them as formatted dates rather than a Serial date number.