![]() |
Textbox edit
I have a text box in a form I would like the user to enter numbers only in.
On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
Textbox edit
The ASCII code for "-" is 45, so you can allow that; i.e:
If (KeyAscii < 48 and KeyAscii <45) or KeyAscii 57 Then... The only problem: the user could enter something like 34-56 unless you also check to see if it is the first character in the textbox, so you may need to write some code to deal with this possibility. "Paul" wrote: I have a text box in a form I would like the user to enter numbers only in. On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
Textbox edit
Hi Paul
Use this (45 = -) Private Sub TextBox1_KeyPress(ByVal keyascii As MSForms.ReturnInteger) Select Case keyascii Case 45 Case 48 To 57 'Numbers Case Else 'Discard anything else keyascii = 0 End Select End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Paul" wrote in message ... I have a text box in a form I would like the user to enter numbers only in. On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
Textbox edit
Check separately, for the first char being a - and there not already being
one, or have a checkbox to signify negative. -- HTH RP (remove nothere from the email address if mailing direct) "K Dales" wrote in message ... The ASCII code for "-" is 45, so you can allow that; i.e: If (KeyAscii < 48 and KeyAscii <45) or KeyAscii 57 Then... The only problem: the user could enter something like 34-56 unless you also check to see if it is the first character in the textbox, so you may need to write some code to deal with this possibility. "Paul" wrote: I have a text box in a form I would like the user to enter numbers only in. On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
Textbox edit
Only once, and at start Ron
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Static fHyphen As Boolean Select Case KeyAscii Case 45 If fHyphen Or Len(TextBox1.Text) 1 Then KeyAscii = 0 End If Case 48 To 57 'Numbers Case Else 'Discard anything else KeyAscii = 0 End Select End Sub Regards Bob "Ron de Bruin" wrote in message ... Hi Paul Use this (45 = -) Private Sub TextBox1_KeyPress(ByVal keyascii As MSForms.ReturnInteger) Select Case keyascii Case 45 Case 48 To 57 'Numbers Case Else 'Discard anything else keyascii = 0 End Select End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Paul" wrote in message ... I have a text box in a form I would like the user to enter numbers only in. On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
Textbox edit
Hi Bob
Or maybe Case 45: If TextBox1.SelStart < 0 Then keyascii = 0 -- Regards Ron de Bruin http://www.rondebruin.nl "Bob Phillips" wrote in message ... Only once, and at start Ron Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Static fHyphen As Boolean Select Case KeyAscii Case 45 If fHyphen Or Len(TextBox1.Text) 1 Then KeyAscii = 0 End If Case 48 To 57 'Numbers Case Else 'Discard anything else KeyAscii = 0 End Select End Sub Regards Bob "Ron de Bruin" wrote in message ... Hi Paul Use this (45 = -) Private Sub TextBox1_KeyPress(ByVal keyascii As MSForms.ReturnInteger) Select Case keyascii Case 45 Case 48 To 57 'Numbers Case Else 'Discard anything else keyascii = 0 End Select End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Paul" wrote in message ... I have a text box in a form I would like the user to enter numbers only in. On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
Textbox edit
even nicer!
A better solution, and highlighting that my fHyphen variable was superfluous (in such a nice way :-)) Bob "Ron de Bruin" wrote in message ... Hi Bob Or maybe Case 45: If TextBox1.SelStart < 0 Then keyascii = 0 -- Regards Ron de Bruin http://www.rondebruin.nl "Bob Phillips" wrote in message ... Only once, and at start Ron Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Static fHyphen As Boolean Select Case KeyAscii Case 45 If fHyphen Or Len(TextBox1.Text) 1 Then KeyAscii = 0 End If Case 48 To 57 'Numbers Case Else 'Discard anything else KeyAscii = 0 End Select End Sub Regards Bob "Ron de Bruin" wrote in message ... Hi Paul Use this (45 = -) Private Sub TextBox1_KeyPress(ByVal keyascii As MSForms.ReturnInteger) Select Case keyascii Case 45 Case 48 To 57 'Numbers Case Else 'Discard anything else keyascii = 0 End Select End Sub -- Regards Ron de Bruin http://www.rondebruin.nl "Paul" wrote in message ... I have a text box in a form I would like the user to enter numbers only in. On this forum, some code was posted: Private Sub TextBox1_Key Press If KeyAscii <48 or Key Ascii 57 Then KeyAscii=0 End If This works great EXCEPT it will not allow input of a negative number, which I need. How can I modify this code to allow a negative number to be input? Thanks! -- Paul |
All times are GMT +1. The time now is 08:57 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com