I would handle the first three separately with a temp variable:
Code:
tempInput = InputBox("Enter the date the payment is due in format dd/mm/yyyy")
If tempinput = "" then exit sub
on error resume next
DueDate = CDate(tempinput)
on error goto 0
if duedate = 0 then
msgbox "Invalid date entered - please try again"
exit sub
end if
You could also put the validation in a loop (with a counter so it's not infinite) so that it prompts to try again if an invalid date is entered.