kha0s/Skip, pardon me butting in on this one, but I literally just posted this in answer to a Q in the MS groups, and it may help kha0s understand one way of how to determine the next row (I'll butt out again now :-> )
This routine sets references to each of two sheets, Data1 where the data will be
copied from and Data2 where it will be copied to.
The lrow = wks2.Cells(Rows.Count, "A"

.End(xlUp).Row bit starts at
cells(rows.count, "A"

on Data2 which will be Cells(65536, "A"

which is the
same as A65536 and then uses End(xlUp) to work upwards and find the first cell
with data in it. The .row bit returns the row number of that cell. The last
bit of the sub then simply copies rng1 which is your range to copy each time,
and then pastes it to range(A lrow) (ie A2, A3, A4, A5... etc). The lrow + 1
bit means that it paste to the cell that is one cell down from the current last
row. This gets recalculated every time you hit the button, so will increment by
one each time.
By the way, the .Copy wks2.Cells(lrow + 1, "A"

bit takes the form <copy destination>
Sub CopyData()
Dim wks1 As Worksheet
Dim wks2 As Worksheet
Dim rng1 As Range
Dim lrow As Long
Set wks1 = Sheets("Data1"

Set wks2 = Sheets("Data2"

Set rng1 = wks1.Range("A1:E1"
lrow = wks2.Cells(Rows.Count, "A"

.End(xlUp).Row
With rng1
.Copy wks2.Cells(lrow + 1, "A"

End With
End Sub
----------------------------------------------------------------------------
![[peace] [peace] [peace]](/data/assets/smilies/peace.gif)
It's easier to beg forgiveness than ask permission
----------------------------------------------------------------------------