ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   TextBox and KeyCode (https://www.excelbanter.com/excel-programming/328206-textbox-keycode.html)

Darrin Henshaw

TextBox and KeyCode
 
I've got a userform with multiple textboxes, each corresponding to
different types of data. I'm trying to limit the possible errors that
can occur. One of my textboxes, corresponds to a zip code. The code I
have to restrict possible entries to number is as so:

Private Sub ZipCode_KeyDown(ByVal KeyCode As _ MSForms.ReturnInteger,
ByVal Shift As Integer)

If KeyCode < 48 Or KeyCode 57 Then
KeyCode = 0
Beep
End If
End Sub

However, the two problems I have is that. A) The user cannot use the
keypad. What are the keycodes to enable the use of the keypad. B) The
user cannot use the backspace key, to correct an entry. How can I limit
the entries to numbers, but allow them to use the keypad? And allow them
to correct themselves, with the backspace key? Thanks.

*** Sent via Developersdex http://www.developersdex.com ***

Bob Phillips[_6_]

TextBox and KeyCode
 
Private Sub ZipCode_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
With Me.ZipCode
Select Case KeyCode
Case KeyCode < 48, Is 57
KeyCode = 0
Beep
Case 8 'backspace
If Len(.Text) 0 Then
.Text = Left(.Text, Len(.Text) - 1)
End If
KeyCode = 0
End Select
End With
End Sub



--

HTH

RP
(remove nothere from the email address if mailing direct)


"Darrin Henshaw" wrote in message
...
I've got a userform with multiple textboxes, each corresponding to
different types of data. I'm trying to limit the possible errors that
can occur. One of my textboxes, corresponds to a zip code. The code I
have to restrict possible entries to number is as so:

Private Sub ZipCode_KeyDown(ByVal KeyCode As _ MSForms.ReturnInteger,
ByVal Shift As Integer)

If KeyCode < 48 Or KeyCode 57 Then
KeyCode = 0
Beep
End If
End Sub

However, the two problems I have is that. A) The user cannot use the
keypad. What are the keycodes to enable the use of the keypad. B) The
user cannot use the backspace key, to correct an entry. How can I limit
the entries to numbers, but allow them to use the keypad? And allow them
to correct themselves, with the backspace key? Thanks.

*** Sent via Developersdex http://www.developersdex.com ***




Darrin Henshaw

TextBox and KeyCode
 
Thanks Bob. That takes care of the need to backspace, but any ideas on
how to allow them to use the numeric keypad?

*** Sent via Developersdex http://www.developersdex.com ***

Bob Phillips[_7_]

TextBox and KeyCode
 
Sorry about that

Private Sub ZipCode_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
With Me.ZipCode
Select Case True
Case (KeyCode = 96 And KeyCode < 105) 'numeric keypad
'exit quietly
Case (KeyCode = 48 And KeyCode < 57) 'normal keypad
'exit quietly
Case KeyCode = 8 'backspace
If Len(.Text) 0 Then
.Text = Left(.Text, Len(.Text) - 1)
End If
KeyCode = 0
Case Else
KeyCode = 0
Beep
End Select
End With
End Sub


--
HTH

Bob Phillips

"Darrin Henshaw" wrote in message
...
Thanks Bob. That takes care of the need to backspace, but any ideas on
how to allow them to use the numeric keypad?

*** Sent via Developersdex http://www.developersdex.com ***




Charlie

TextBox and KeyCode
 
As long as the Num Lock is on the keypad should return the same ascii values
as the keyboard number keys.

"Darrin Henshaw" wrote:

Thanks Bob. That takes care of the need to backspace, but any ideas on
how to allow them to use the numeric keypad?

*** Sent via Developersdex http://www.developersdex.com ***


Darrin Henshaw

TextBox and KeyCode
 
Thanks it's working now. Is there a place I can see what the values are
for each key? So I can print them, or save them for future reference.
Also, by just modifying the "Me.ZipCode" can use the same code for
another textbox, as is? Thanks.


*** Sent via Developersdex http://www.developersdex.com ***

Charlie

TextBox and KeyCode
 
There is a list of Ascii characters in VB help. Or you can set a debug
breakpoint and examine the value, or use Debug.Print KeyCode, or whatever.

"Darrin Henshaw" wrote:

Thanks it's working now. Is there a place I can see what the values are
for each key? So I can print them, or save them for future reference.
Also, by just modifying the "Me.ZipCode" can use the same code for
another textbox, as is? Thanks.


*** Sent via Developersdex http://www.developersdex.com ***


Charlie

TextBox and KeyCode
 
Yes, we often modify existing code or create module that can be used in many
other places.

"Darrin Henshaw" wrote:

Thanks it's working now. Is there a place I can see what the values are
for each key? So I can print them, or save them for future reference.
Also, by just modifying the "Me.ZipCode" can use the same code for
another textbox, as is? Thanks.


*** Sent via Developersdex http://www.developersdex.com ***



All times are GMT +1. The time now is 12:42 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com