Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#4
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#5
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#6
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
#7
Posted to microsoft.public.excel.programming
|
|||
|
|||
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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
HELP! I Lost The Ability To Advance From TextBox To TextBox With the ENTER Or The TAB Keys | Excel Programming | |||
Textbox Bug? Missing/delayed update of textbox filled via VBA | Excel Programming | |||
Textbox Bug? Missing/delayed update of textbox filled via VBA | Excel Programming | |||
Edit Excel TextBox using C# | Excel Programming | |||
Edit Textbox using KeyPress vba code in Access | Excel Programming |