Sub for keypress check

Latexy

New Member
Joined
Oct 8, 2019
Messages
19
Hi!

Well i have a question for check keypress for multiple textbox with public sub.
Heres example how i have done it now for each textbox.
Code:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    KeyAscii = KeyAscii * -CLng(Chr(KeyAscii) Like "[0-9]")
End Sub
So i would like to make one sub wich to call for keypress check.

-Late
 

DanteAmor

Well-known Member
Joined
Dec 3, 2018
Messages
7,937
Office Version
2007
Platform
Windows
Put the following code in userform

Code:
Dim TxtBx() As New Class1  [COLOR=#008000]'At the beginning of all the code[/COLOR]


Private Sub UserForm_Initialize()
  Dim i As Long, n As Long, ctrl As MSForms.Control
  i = 1
  For Each ctrl In Me.Controls
    If TypeName(ctrl) = "TextBox" Then
      ReDim Preserve TxtBx(i)
      Set TxtBx(i).MultTextbox = ctrl
      i = i + 1
    End If
  Next
End Sub
------------------------------------------
Insert a class module "Class1"
Put the following code in Class1

Code:
Public WithEvents MultTextbox As MSForms.TextBox    [COLOR=#008000]'At the beginning of all the code[/COLOR]


Private Sub MultTextbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  KeyAscii = KeyAscii * -CLng(Chr(KeyAscii) Like "[0-9]")
End Sub
 

Latexy

New Member
Joined
Oct 8, 2019
Messages
19
Thank you!
One more thing i noticed is there should be possible to write comma to make value with desimals. Can you help with it?

-Late
 

DanteAmor

Well-known Member
Joined
Dec 3, 2018
Messages
7,937
Office Version
2007
Platform
Windows
Use this in class module

Code:
Public WithEvents MultTextbox As MSForms.TextBox


Private Sub MultTextbox_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
  If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 44 Then
    KeyAscii = 0
  End If
End Sub
 

Latexy

New Member
Joined
Oct 8, 2019
Messages
19
Thank you very much!
Nice to get help because im just beginner of coding and learning it while trying to make some simple workbooks :)

-Late
 

DanteAmor

Well-known Member
Joined
Dec 3, 2018
Messages
7,937
Office Version
2007
Platform
Windows
I'm glad to help you. Thanks for the feedback.
 

Forum statistics

Threads
1,078,486
Messages
5,340,618
Members
399,387
Latest member
amrita34

Some videos you may like

This Week's Hot Topics

  • Problem with Radio Button's format control
    I am creating an employee evaluation template (a sample is below) Column A is the category Column B, C D, E and F will be ratings (unacceptable...
  • Last Display on userform to a Listbox
    [CODE=vba] lstdisplay.ColumnCount = 15 lstdisplay.RowSource = "A1:O600000" [/CODE] So when i do this it Displays everything on the sheet i am...
  • Rename and move files to a new location
    Dear all, I have an excel file with the following information. The actual file name is at column A but i want to rename it using the following...
  • Help with True/False Formula
    Hello! Am stumped how to fix this formula, in which my result returns 'True', but it should return False. =IF(AG2=True...
  • Clear extra characters from a provided range of cells
    Dear All, I have following code which gives me desired output to remove extra characters from a provided range. But it takes too much time when...
  • Help with Current and highest streaks
    Hi there, I've just joined the forum and this is my first post. I've already spent quite a bit of time searching the net and this forum for a...
Top