Private Sub TextBox1_Change()
convert_to_integer TextBox1
End Sub
Public Sub convert_to_integer(tbox as msforms.textbox)
If IsNumeric(Right(tbox.text, 1)) = False Then
Application.SendKeys "{BACKSPACE}"
End If
End Sub
But it would be better to use the keypress event.
See this post by Harald Staff (actually look at the thead)
http://groups.google.com/groups?thre...%40tkmsftngp05
You can use a single event to handle multiple textboxes using this technique
by John Walkenbach
http://j-walk.com/ss/excel/tips/tip44.htm
Handle Multiple UserForm Buttons With One Subroutine
It is written for commandbuttons, but works for textboxes and other msforms
2.0 controls as well.
--
Regards,
Tom Ogilvy
"kafka" wrote in message
...
Hi all.
I have 25 textbox in my user form and all textbox values must be
integer.
so i do it with this code
Private Sub TextBox1_Change()
If IsNumeric(Right(TextBox1, 1)) = False Then
Application.SendKeys "{BACKSPACE}"
End If
End Sub
As i said i have 25 textbox it takes a long time to write this code for
every text box on the user form.
Now i am trying make a procedure search all the texboxes which have
focus and make the above code.
For example
Private Sub TextBox1_Change()
convert_to_integer
End Sub
Public Sub convert_to_integer()
Dim ctrl As Control
For Each ctrl In UserForm1.Controls
If TypeName(ctrl) = "TextBox" Then
*If ctrl.SetFocus = True Then*
If IsNumeric(Right(ctrl, 1)) = False Then
Application.SendKeys "{BACKSPACE}"
End If
End If
End If
Next ctrl
End Sub
but this code givinme error on bold line "*If ctrl.SetFocus = True
Then* "
So how can i find the focused text box .
Thanks in advance.