Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hello NG,
Please tell me why the sendkeys statement does not work here in my code. Also, why is it that when I press backspace it does not trigger the keypress event even though the help file said that it will trigger the event. TIA Jon-jon Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'Nos 0 - 9 Exit Sub Case Else Application.EnableEvents = False SendKeys "{BACKSPACE}", True Application.EnableEvents = True MsgBox "Please enter numeric character only." End Select End Sub |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Just to add.
I have never seen a need to enable or disable events when you change the key ascii value. I believe those two lines can be deleted. Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'Nos 0 - 9 Exit Sub Case Else KeyAscii = 0 MsgBox "Please enter numeric character only." End Select End Sub worked fine for me without interfering with the users ability to edit the information in the box. I saw no evidence that this event was fired by a backspace key. -- Regards, Tom Ogilvy "Chip Pearson" wrote in message ... Conrado, Try the following instead: Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'Nos 0 - 9 Exit Sub Case Else Application.EnableEvents = False KeyAscii = 0 Application.EnableEvents = True MsgBox "Please enter numeric character only." End Select End Sub -- Cordially, Chip Pearson Microsoft MVP - Excel www.cpearson.com "Conrado Capistrano" wrote in message ... Hello NG, Please tell me why the sendkeys statement does not work here in my code. Also, why is it that when I press backspace it does not trigger the keypress event even though the help file said that it will trigger the event. TIA Jon-jon Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'Nos 0 - 9 Exit Sub Case Else Application.EnableEvents = False SendKeys "{BACKSPACE}", True Application.EnableEvents = True MsgBox "Please enter numeric character only." End Select End Sub |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Try to avoid Sendkey Conrado
It is not reliable Maybe you like this one It will only allow digits 0 thru 9 Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim i As Integer If KeyAscii < 48 Or KeyAscii 57 Then ' only allow digits 0 thru 9 KeyAscii = 0 End If End Sub -- Regards Ron de Bruin (Win XP Pro SP-1 XL2002 SP-2) www.rondebruin.nl "Conrado Capistrano" wrote in message ... Hello NG, Please tell me why the sendkeys statement does not work here in my code. Also, why is it that when I press backspace it does not trigger the keypress event even though the help file said that it will trigger the event. TIA Jon-jon Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'Nos 0 - 9 Exit Sub Case Else Application.EnableEvents = False SendKeys "{BACKSPACE}", True Application.EnableEvents = True MsgBox "Please enter numeric character only." End Select End Sub |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Ron!
"Ron de Bruin" wrote in message ... Try to avoid Sendkey Conrado It is not reliable Maybe you like this one It will only allow digits 0 thru 9 Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Dim i As Integer If KeyAscii < 48 Or KeyAscii 57 Then ' only allow digits 0 thru 9 KeyAscii = 0 End If End Sub -- Regards Ron de Bruin (Win XP Pro SP-1 XL2002 SP-2) www.rondebruin.nl "Conrado Capistrano" wrote in message ... Hello NG, Please tell me why the sendkeys statement does not work here in my code. Also, why is it that when I press backspace it does not trigger the keypress event even though the help file said that it will trigger the event. TIA Jon-jon Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Select Case KeyAscii Case 48 To 57 'Nos 0 - 9 Exit Sub Case Else Application.EnableEvents = False SendKeys "{BACKSPACE}", True Application.EnableEvents = True MsgBox "Please enter numeric character only." End Select End Sub |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
event vba | Excel Worksheet Functions | |||
VBA Event | Excel Discussion (Misc queries) | |||
event | Excel Discussion (Misc queries) | |||
Which cell was the activecell before a keypress | Excel Worksheet Functions | |||
Event Question | Excel Programming |