Can someone please help me?
What part of my code is wrong that the first empty row in N is also getting a DBRow number in U after I click Save Order?
What part of my code is wrong that the first empty row in N is also getting a DBRow number in U after I click Save Order?
VBA Code:
Option Explicit
Public Sub Save_Order()
Dim LastRow As Long, OrderRow As Long, ItemRow As Long, ItemDBRow As Long, TotalRow As Long
Dim TotalRange As Range
With POS
If .Range("M16").Value = Empty Then
MsgBox "Please add at least one item to save this order"
Exit Sub
End If
'Clear Total Rows if Existing (Temporarily)
Set TotalRange = .Range("U16:U999").Find("T")
If Not TotalRange Is Nothing Then .Range("O" & TotalRange.Row & ":U" & TotalRange.Row + 4).ClearContents
LastRow = .Range("M16:P70").Find(What:="*", After:=.Range("M16"), LookAt:=xlPart, LookIn:=xlValues, SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False).Row + 1 'First Avail Row
If .Range("B3").Value = Empty Then 'New Order
OrderRow = ORDERS.Range("A9999").End(xlUp).Row + 1 'First Available Row
ORDERS.Range("A" & OrderRow).Value = .Range("P13").Value 'New Order Number
Else: 'Existing Order
OrderRow = Range("B3").Value 'Order Row
End If
ORDERS.Range("B" & OrderRow).Value = Date 'Date
ORDERS.Range("C" & OrderRow).Value = Time 'Time
ORDERS.Range("D" & OrderRow).Value = .Range("P11").Value 'Register
ORDERS.Range("E" & OrderRow).Value = .Range("W27").Value 'Total
ORDERS.Range("F" & OrderRow).Value = .Range("W28").Value 'Payment
ORDERS.Range("G" & OrderRow).Value = .Range("B12").Value 'PayType
'.Range("O12").Value = Now 'Current Date
'Enter Item Details
For ItemRow = 16 To LastRow
If Range("U" & ItemRow).Value = Empty Then 'New Item
ItemDBRow = ORDERITEMS.Range("A9999").End(xlUp).Row + 1 'First Available Row
ORDERITEMS.Range("A" & ItemDBRow).Value = .Range("P13").Value 'Order ID
ORDERITEMS.Range("G" & ItemDBRow).Value = ItemRow
ORDERITEMS.Range("H" & ItemDBRow).Value = ItemDBRow
.Range("U" & ItemRow).Value = ItemDBRow
Else: 'Existing Item
ItemDBRow = .Range("U" & ItemRow).Value 'Item DB Row
End If
ORDERITEMS.Range("C" & ItemDBRow).Value = .Range("L" & ItemRow).Value 'ItemType
ORDERITEMS.Range("B" & ItemDBRow).Value = .Range("M" & ItemRow).Value 'ItemID
ORDERITEMS.Range("D" & ItemDBRow).Value = .Range("N" & ItemRow).Value 'Product Name
ORDERITEMS.Range("E" & ItemDBRow).Value = .Range("O" & ItemRow).Value 'Quantity
ORDERITEMS.Range("F" & ItemDBRow).Value = .Range("P" & ItemRow).Value 'Price
Next ItemRow
.Shapes("DeleteIcon").Visible = msoFalse
.Shapes("IncreaseIcon").Visible = msoFalse
.Shapes("DecreaseIcon").Visible = msoFalse
.Shapes("PAIDStamp").Visible = msoTrue
.Shapes("DISCOUNTStamp").Visible = msoFalse
End With
End Sub