One option would be to use
Dim startdt
Instead of Dim startdt As Date
This dims the variable as a variant. There will be no mismatch.
Then you need to do your validation of the text string
Then, when you are sure it is a valid date you need to convert it to a date
value using
startdt=datevalue(startdt)