Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error Handling Problem
Greetings,
How do I set up an error handling routine that does not though me into an endless loop? I have a UserForm (UF1) with a TextBox (TB1), in which I need a date entered into. When I exit TB1, I have the format changed to mmm dd, yyyy. This works fine. the problem arises when the person entering the data mistypes something in TB1 and it is NOT a legitimate date. On exiting TB1, they get an error message telling them that they have a type mismatch asking about debug. I have tried to use on error to generate a msgbox and then unload the userform and then reload it, but that just freezes my machine and I have to Control, Alt, Delete out of Excel (we wont discuss lost data at this time). So, the question is how do I set up an error handling routine? Is there any info out there on the logic and design of error handling routines? Any help would be appreciated. TIA -Minitman |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error Handling Problem
Without seeing the code and knowing where the error generates, it is
difficult to be sure, but could you not cast the text into a date, and if the date is invalid it will error at that point which you can trap, something like On Error Resume Next myDate = CDate(Textbox1.Text) If myDate = 0 Then MsgBox "Error" End If -- HTH RP (remove nothere from the email address if mailing direct) "Minitman" wrote in message ... Greetings, How do I set up an error handling routine that does not though me into an endless loop? I have a UserForm (UF1) with a TextBox (TB1), in which I need a date entered into. When I exit TB1, I have the format changed to mmm dd, yyyy. This works fine. the problem arises when the person entering the data mistypes something in TB1 and it is NOT a legitimate date. On exiting TB1, they get an error message telling them that they have a type mismatch asking about debug. I have tried to use on error to generate a msgbox and then unload the userform and then reload it, but that just freezes my machine and I have to Control, Alt, Delete out of Excel (we wont discuss lost data at this time). So, the question is how do I set up an error handling routine? Is there any info out there on the logic and design of error handling routines? Any help would be appreciated. TIA -Minitman |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error Handling Problem
Hey Bob,
I guess I was to vague in my description. Then entry in TB1 is a date which is formatted at exit to mmm dd, yyyy from mm/dd/yy. It is at exit that an error will cause the problem. The code in question looks like this: Private Sub TB1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Deposit Date TB1.Text = Format(DateValue(TB1.Text), "mmm dd, yyyy") .. .. .. End Sub As I said earlier, if the person entering the dates mangles the date so that it is not a date, They get an error to press either "use debug" or "OK". "OK" takes them out of the form and back to the worksheet. Debug will also get you there, only longer. Anybody have any ideas? TIA -Minitman On Sun, 14 Nov 2004 20:10:07 -0000, "Bob Phillips" wrote: Without seeing the code and knowing where the error generates, it is difficult to be sure, but could you not cast the text into a date, and if the date is invalid it will error at that point which you can trap, something like On Error Resume Next myDate = CDate(Textbox1.Text) If myDate = 0 Then MsgBox "Error" End If |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
Error Handling Problem
That is what I guessed, so I would re-suggest my previous answer.
Private Sub TB1_Exit(ByVal Cancel As MSForms.ReturnBoolean) On Error Resume Next myDate = CDate(TeB1.Text) If myDate = 0 Then MsgBox "Error" Cancel = True Else TB1.Text = Format(DateValue(TB1.Text), "mmm dd, yyyy") End If I am not seeing why it causes a debug, but hopefully this would avoid it. -- HTH RP (remove nothere from the email address if mailing direct) "Minitman" wrote in message ... Hey Bob, I guess I was to vague in my description. Then entry in TB1 is a date which is formatted at exit to mmm dd, yyyy from mm/dd/yy. It is at exit that an error will cause the problem. The code in question looks like this: Private Sub TB1_Exit(ByVal Cancel As MSForms.ReturnBoolean) 'Deposit Date TB1.Text = Format(DateValue(TB1.Text), "mmm dd, yyyy") . . . End Sub As I said earlier, if the person entering the dates mangles the date so that it is not a date, They get an error to press either "use debug" or "OK". "OK" takes them out of the form and back to the worksheet. Debug will also get you there, only longer. Anybody have any ideas? TIA -Minitman On Sun, 14 Nov 2004 20:10:07 -0000, "Bob Phillips" wrote: Without seeing the code and knowing where the error generates, it is difficult to be sure, but could you not cast the text into a date, and if the date is invalid it will error at that point which you can trap, something like On Error Resume Next myDate = CDate(Textbox1.Text) If myDate = 0 Then MsgBox "Error" End If |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Error handling problem | Excel Discussion (Misc queries) | |||
Handling #NUM! error | Excel Worksheet Functions | |||
Error Handling | Excel Programming | |||
Excel VBA - Error handling problem | Excel Programming | |||
Error handling | Excel Programming |