Generate Report Based on Dates

How to generate a report based on dates with VBA. Watch the video below:


Watch this video on YouTube.

Here’s the complete VBA code to generate a report from data in sheet1 to another sheet2 based on dates:

Sub reportGenerationBasedonDates()
Dim lastrow As Long, i As Long, erow As Long
Dim sheetdate As Date, startdate As Date, enddate As Date

lastrow = Worksheets(“sheet1”).UsedRange.Rows.Count

startdate = InputBox(“Enter start date as mm-dd-yyyy”, “Enter start date”)
enddate = InputBox(“Enter the end date as mm-dd-yyyy”, “Enter end date”)

For i = 2 To lastrow
sheetdate = Cells(i, 1)
If sheetdate >= startdate And sheetdate <= enddate Then
erow = Worksheets(“sheet2”).UsedRange.Rows.Count + 1
Range(Cells(i, 1), Cells(i, 5)).Copy Destination:=Sheets(“sheet2”).Cells(erow, 1)
End If
Next i
End Sub

Further reading:

How to use dates and times in Excel


Published by

Dinesh Kumar Takyar

Welcome to! My aim is to help you learn MS Excel including VBA. I always felt that a good way to learn something was to find solutions to problems in that domain. That is why I share these Excel videos with you. Mostly these are questions asked during my corporate training sessions. I've been training individuals and companies in computers since 1991. I did my B. Sc. (Vordiplom), M. Sc. (Diplom) and Ph.D. (Dr. rer. nat.) from Hamburg, Germany. The best thing about solving some of my visitor's questions is that I also gain new insights. For more Excel VBA solutions you may like to visit my YouTube channel: For a structured Excel VBA training course online you can visit:

One thought on “Generate Report Based on Dates”

Leave a Reply

Your email address will not be published. Required fields are marked *