you don't need loop
[vba]Private Sub CommandButton1_Click()
Dim formula As String
Dim ws As Worksheet
Set ws = Worksheets("Sheet4")
row = 21
col = 1
On Error Resume Next
quantity = ComboBox2.Value
prod_desc = ComboBox1.Value
Cells(row, col).Value = quantity
col = col + 1
Cells(row, col).Value = prod_desc
Cells(row, col).Select
varlookup = ActiveCell.Address
col = col + 1
Cells(row, col).Select
Cells(row, col).Value = Application.WorksheetFunction.VLookup(prod_desc, Worksheets("Sheet4").Range("a2:b50"), 2, False)
col = col + 1
Cells(row, col).Value = Cells(row, col - 1).Value * quantity
MsgBox ("item Added to Invoice")
row = row + 1
col = 1
Items_entered = Items_entered + 1
If Items_entered = Items Then UserForm1.Hide
End Sub[/vba]