FDibbins makes a valid point, however if you still want to transfer all data to an archive sheet at month's end, then a code as follows may be all that you need:-
Dim lrow As Long
Application.ScreenUpdating = False
lrow = Range("A" & Rows.Count).End(xlUp).Row
If lrow > 1 Then
Sheet1.Range("A2:M" & lrow).Copy
Sheet2.Range("A" & Rows.Count).End(xlUp)(2).PasteSpecial xlPasteValues
Sheet1.Range("A2:M" & lrow).ClearContents
Application.CutCopyMode = False
Application.ScreenUpdating = True
I've assumed that your data is from Columns A to M and that you have headings in both sheets. The code will transfer the whole data set to sheet2 on the click of a button and clear your main sheet of all previous data. I've attached a test work book at the following link to show you how it would work:-
Click on the "RUN" button to see it work. Every time that you add new data to the main sheet then transfer it, it will be appended to the bottom of the previous data "block" in sheet2.
I hope that this helps.