Thread: Tab backwards
View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
John Walkenbach John Walkenbach is offline
external usenet poster
 
Posts: 4
Default Tab backwards

I don't have an answer, just a suggestion.

Personally, I find it much more efficient to do the validation when the user
closes the UserForm. If the controls don't contain valid data, show a MsgBox
and keep the UserForm open. Doing validation when exiting each control
requires all kinds of messy code (as you discovered).

John Walkenbach
For Excel tips, macros, & downloads...
http://j-walk.com/ss


"Garry Jones" wrote in message
...
I am trying to tab backwards in some textboxes on a UserForm when Shift
and Tab are pressed. I need to call another sub to validate the value
before I allow the user to exit the current textbox.

It works when the user tabs forwards, I use this code for that...

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 9: KeyAscii = 0: ntl 2
End Select
End Sub

(This calls my validation sub "ntl" and sends the number of the textbox
to it, in this example 2)

To tab backwards I am trying

Private Sub TextBox2_KeyDown(ByVal KeyAscii As MSForms.ReturnInteger,
ByVal Shift As Integer)
If Shift < 1 Then Shift = 0: Exit Sub
If KeyAscii = 9 And Shift = 1 Then ntlbak 2
End Sub

I want this to call my validation sub "ntlbak" and sends the number of
the textbox to it, in this example 2)

But this code does not do it. What am I missing?

Another probably connected problem,

I have noticed a very strange behaviour when I press the ctrl button a
few times, it really messes up the textbox and empties it after
seemingly tabbing the existing value around a little. Can this be
averted?

Garry Jones
Sweden