If IsDate(Range("B1")) = False Then 'simple msg box to check if date,cell(b1) is empty
MsgBox "Invalid Date!", vbExclamation, "No Date" 'no update until date,cell(b1) is filled
Else
Dim intRow As Integer
Dim rProd As Range
intRow = 2
Range("c1").Value = "=COUNTA(db!D:D)"
nDb = Range("c1").Value
Do While Worksheets("db").Cells(intRow, 2).Value <> ""
If CStr(Worksheets("db").Cells(intRow, 1).Value) = Sheets("GrandTotal").Range("b1").Value Then 'if date value match...
proID = Worksheets("db").Cells(intRow, 6).Value
pro = Worksheets("db").Cells(intRow, 7).Value
uom = Worksheets("db").Cells(intRow, 10).Value
qty = Worksheets("db").Cells(intRow, 9).Value
qty = "=SUMPRODUCT(--(db!R2C1:R[" & nDb & "]C1=R1C2),--(db!R2C6:R[" & nDb & "]C6=RC1),--(db!R2C7:R[" & nDb & "]C7=RC2),--(db!R2C10:R[" & nDb & "]C10=RC3),db!R2C9:R[" & nDb & "]C9)"
'Date' 'prodID' 'prod' 'uom' 'qty'
Range("b2").Formula = "=IF(ISNUMBER(B1),TEXT(WEEKDAY(B1),""dddd""),""Day?"")"
Set rProd = Sheets("GrandTotal").Range("a" & Columns.Count).End(xlUp)
rProd.Offset(1, 0).Resize(, 2) = Array(proID, pro & " (" & uom & ")")
Set rUOM = Sheets("GrandTotal").Range("c" & Columns.Count).End(xlUp)
rUOM.Offset(1, 0).Resize(, 2) = Array(uom, qty)
End If 'end of if date value match...
intRow = intRow + 1
Loop
Dim lngTMP As Long, iRows As Long
On Error GoTo Fin
Application.ScreenUpdating = False
iRows = Cells(Cells.Rows.Count, 2).End(xlUp).Row
For lngTMP = iRows To 6 Step -1
If WorksheetFunction.CountIf(Columns(2), Cells(lngTMP, 2)) > 1 Then
Rows(lngTMP).Delete
End If
Next lngTMP
Fin:
Application.ScreenUpdating = True
Sheets("GrandTotal").Columns("B:B").Replace What:=" (*)", Replacement:="", LookAt:=xlPart
End If 'end of if date empty code
With Sheets("GrandTotal").Range("b" & Rows.Count).End(xlUp).Offset(, -1)
.Offset(3).Resize(2).Value = [{"handover by:";"received by:"}]
End With
Range("c1").Value = ""