Beginner code logic problem

I'm having a problem I haven't been able to crack. I have two worksheets: Main and Data. Main is a form you fill with the require info (D7:G7 range), press a button and the content in that range gets transferred to D7:G7 on the Data sheet. Once it does that, it should move one cell down (5.), select 4 cells to the right (6.) and assigned that range address to the variable DataRange. Therefore when you press the button again, it will transfer the new info to the cells below the previous input and form a neat list.

Problem is I realized I'll probably have to use some sort of loop for this. I used Do While, I did something wrong and the loop ran into infinity and crashed Excel. I think I should use a for loop, but I don't know what value it would iterate from and it would be finite. The only programming knowledge I have is some Python and I have no clue how to do this.

The code as is does work, but I can't move on to the next step: get everything into a loop so that when I press the button again the value of DataRange doesn't get reset back to D7:G7. I feel like this is very simple but I can't think of what I'm doing wrong. Thanks to anyone who can shed some light.

Sub Button2_Click()

Dim wb As Workbook

Dim ws As Worksheet

Dim DataRange As String

Dim NewDataRange As String

Set wb = ActiveWorkbook

Set Main = Sheets("Main")

Set Data = Sheets("Data")

DataRange = "D7:G7"

Application.ScreenUpdating = False

Main.Range(DataRange).Copy Data.Range(DataRange).PasteSpecial xlPasteValues Main.Range(DataRange).ClearContents Worksheets("Data").Activate ActiveCell.Offset(1, 0).Select ActiveCell.Offset(0, 0).Resize(1, 4).Select DataRange = Selection.Address(ReferenceStyle:=xlA1, RowAbsolute:=False, ColumnAbsolute:=False) Application.ScreenUpdating = True

End Sub`

/r/vba Thread