What is wrong with this?

  • Thread starter Thread starter Conan Kelly
  • Start date Start date
C

Conan Kelly

Hello all,

Here is my code:



Public Sub EnterTime()
Dim pdteInputBox As Date

gintMsgBoxResponse = MsgBox("The current time is: " _
& Format(Time, "h:mm AM/PM") & "." & vbCrLf & vbCrLf _
& "Would you like to enter this time?", vbQuestion + _
vbYesNo, "Current Time")

If gintMsgBoxResponse = vbYes Then
ActiveCell.Value = Time
Else
pdteInputBox = TimeValue(InputBox("Please enter the correct
time.", _
"Time", Format(Time, "h:mm AM/PM")))

If pdteInputBox = "" Then
Exit Sub
Else
ActiveCell.Value = pdteInputBox
End If
End If

gintMsgBoxResponse = 0
End Sub




The problem I'm having is if I answer "No" to the message box and then
enter a time (9:03) in the input box and hit "OK", I get a "Run-time
error '13': Type mismatch".

I also noticed that I got the same error when I hit "Cancel" on the
input box.

Any help would be greatly appreciated,

Conan Kelly
 
try changing

If pdteInputBox = "" Then


to


If pdteInputBox = 0 Then
 
Try

If CStr(pdteInputBox) = "" Then
.....

You might think about skipping the first messagebox and just always popping
up the input with the current time pre-filled.
It's less code, just as quick for your user as your "two-pronged" approach,
and minimizes the number of different UI prompts the user has to get used
to.

Tim
 
Tom,

Thanks. That solved the first problem. But I'm still getting the
error message if I hit "Cancel" on the input box.

Thanks again for the help,

Conan
 
Public Sub EnterTime()
Dim pdteInputBox As Date

gintMsgBoxResponse = MsgBox("The current time is: " _
& Format(Time, "h:mm AM/PM") & "." & vbCrLf & vbCrLf _
& "Would you like to enter this time?", vbQuestion + _
vbYesNo, "Current Time")

If gintMsgBoxResponse = vbYes Then
ActiveCell.Value = Time
Else
On Error Resume Next
pdteInputBox = TimeValue(InputBox("Please enter the correct time.",
_
"Time", Format(Time, "h:mm AM/PM")))
On Error goto 0
If pdteInputBox = 0 Then
Exit Sub
Else
ActiveCell.Value = pdteInputBox
End If
End If

gintMsgBoxResponse = 0
End Sub
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top