#1   Report Post  
David Unger
 
Posts: n/a
Default Focus

Hello,

I wonder if someone can help me with this: I'm trying to confirm a valid
time entry in a form field, and if invalid, clear the entry and put the
focus back in that field. If I use the following code it does work (not
the best method, no doubt), but if I remove the UserForm1.Hide and
UserForm1.Show lines, the focus always moves to the next field. I know I'm
missing something basic here, not sure what. Thanks,

Dave

If Private Sub txtTime1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo BadTime
Dim X
txtTime1.Text = Format(Val(txtTime1.Text), "00:00")
X = TimeValue(txtTime1.Text)
Exit Sub
BadTime:
UserForm1.Hide
MsgBox ("Invalid time")
txtTime1.Text = ""
txtTime1.SetFocus
UserForm1.Show
End Sub


  #2   Report Post  
Harlan Grove
 
Posts: n/a
Default

"David Unger" wrote...
I wonder if someone can help me with this: I'm trying to confirm a valid
time entry in a form field, and if invalid, clear the entry and put the
focus back in that field. If I use the following code it does work (not
the best method, no doubt), but if I remove the UserForm1.Hide and
UserForm1.Show lines, the focus always moves to the next field. I know I'm
missing something basic here, not sure what. Thanks,

....
Private Sub txtTime1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo BadTime
Dim X
txtTime1.Text = Format(Val(txtTime1.Text), "00:00")
X = TimeValue(txtTime1.Text)
Exit Sub
BadTime:
UserForm1.Hide
MsgBox ("Invalid time")
txtTime1.Text = ""
txtTime1.SetFocus
UserForm1.Show
End Sub


Use the Cancel parameter to prevent exiting the field. Also, error trapping
is a crude way to handle type checking. Try something like

Private Sub Time_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If IsError(Evaluate("--""" & Time.Value & """")) Then
MsgBox "invalid time: " & Time.Value
Time.Value = ""
Cancel = True
End If
End Sub


  #3   Report Post  
Dave Unger
 
Posts: n/a
Default

Harlan,

Thanks for bringing my attention to the Cancel parameter, and the tip
on error handling. I knew there had to be a better way. Much
appreciated,

Dave

  #4   Report Post  
Dave Unger
 
Posts: n/a
Default

Harlan,

I've had a chance to try out your code, can't seem to get it to work.
No matter what I enter in the field, eg., 2500, it doesn't get trapped.
Also, I don't understand your Evaluate statement, the --"" and """".
Thanks, sorry for being a nuisance,

Dave

  #5   Report Post  
Harlan Grove
 
Posts: n/a
Default

"Dave Unger" wrote...
I've had a chance to try out your code, can't seem to get it to work.
No matter what I enter in the field, eg., 2500, it doesn't get trapped.
Also, I don't understand your Evaluate statement, the --"" and """".
Thanks, sorry for being a nuisance,


My fault. I only tried nonnumeric text in the Time field/textbox. If you
want to avoid error trapping, use

If IsError(Evaluate("TIMEVALUE(""" & Time.Value & """)")) Then

The argument to Evaluate is a call to the worksheet TIMEVALUE function,
which needs to look like a string constant, thus the doubled double quotes.




  #6   Report Post  
Dave Unger
 
Posts: n/a
Default

Harlan, me again,

I just can't seem to get it to work properly - no matter what I throw
at it (e.g., 09:55 or 09:65), it always follows the error path. I've
tryed changing a few things, to no avail - any more suggestions?
Thanks

Dave

  #7   Report Post  
Dave Unger
 
Posts: n/a
Default

Harlan, me again,

I just can't seem to get it to work properly - no matter what I throw
at it (e.g., 09:55 or 09:65), it always follows the error path. I've
tryed changing a few things, to no avail - any more suggestions?
Thanks

Dave

  #8   Report Post  
ste
 
Posts: n/a
Default

hi,
try this

BadTime:
MsgBox ("Invalid time")
txttime1.SetFocus
txttime1.Text = ""
Cancel = True
End Sub

bye, ste

  #9   Report Post  
Dave Unger
 
Posts: n/a
Default

Thanks ste,

The Cancel=True was the key

Dave

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
must press enter 2x to move cell focus Lynn Excel Discussion (Misc queries) 0 March 18th 05 06:05 PM
Cursor Keys does not change cell focus Skypilot Excel Discussion (Misc queries) 3 February 24th 05 07:13 AM
Printing switches focus off proper sheet Abi Excel Worksheet Functions 1 January 26th 05 07:42 PM


All times are GMT +1. The time now is 04:02 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"