This copies the worksheet and then clears out the product info
Sub createNewInvoice()
'this assumes the top portion of the invoice never changes
Dim startRow As Integer
Dim startCol As Integer
Dim invNumber As Integer
Dim ws As Worksheet
Dim invCol As Integer
Dim invRow As Integer
invRow = 8
invCol = 6 'F column
startRow = 18 '18 is the first line of items
startCol = 2 'B
'get the invoice number
invNumber = CInt(ActiveWorkbook.Sheets("Invoice").Cells(invRow, invCol).Value)
'set the worksheet object
Set ws = ActiveWorkbook.Sheets("Invoice")
'copy after invoice
ws.Copy After:=ws
'update our invoice number
ws.Cells(invRow, invCol).Value = invNumber + 1
'make the worksheet active
ws.Activate
'clear out our cells with the product info
'clear the first line and delete the rest
Do While Trim(ws.Cells(startRow, startCol).Value) <> ""
If startRow = 18 Then
ws.Cells(startRow, startCol).EntireRow.ClearContents
Else
ws.Cells(startRow, startCol).EntireRow.Delete shift:=Excel.xlShiftUp
'reset the row
startRow = startRow - 1
End If
'move to the next row
startRow = startRow + 1
Loop
'release the worksheet object
Set ws = Nothing
End Sub