Format a textbox
Hi
It's working as desired here. Check if you have set the MaxLength
property to 12 rather than 13.
I see you have made another post regarding the date problem, so I
assume you have settled it.
Regards,
Per
On 6 Apr., 02:55, JacyErdelt
wrote:
Yes.Thank you. That was what I wanted it to do. Only one problem now, when I
try to enter the last digit it doesn't let me. I can only get as far as
(555)555-555. Any ideas?
Also, since you are clearly an expert, how would I do the same thing for the
date, so there would be no chance of entering it in the incorrect format? I
would like it to auto format 04/01/09.
"Per Jessen" wrote:
The problem is that you have removed the carriage return between ByVal and
Shift without inserting a space in the first statement.
It should look like this:
.....ByVal Shift As Integer)
Regards,
Per
"JacyErdelt" skrev i meddelelsen
...
Thank you for your response. I am trying to insert your code into mine,
but I
am having some problems. When I insert exactly what you wrote and then run
it, the code is not executed because it is not associated with that
specific
textbox (which I think is expected because I assume "textbox1" is a
generic
name). However when I change that to specifically refer to the textbox
(which
is named "txtPhone") I get the following compile error; Procedure
declaration
does not match description of event or procedure having the same name..
This
is what the code looks like when I get the compile error;
Private Sub txtPhone_KeyUp(ByVal KeyCode As MSForms.ReturnInteger,
ByValShift As Integer)
* *If IsNumeric(Chr(KeyCode)) Then
* *If Len(Me.txtPhone) = 1 Then Me.txtPhone = "(" & Me.txtPhone
* *If Len(Me.txtPhone) = 4 Then Me.txtPhone = Me.txtPhone & ")"
* *If Len(Me.txtPhone) = 8 Then Me.txtPhone = Me.txtPhone & "-"
* * * *Else
* * * * * *If Len(Me.txtPhone) < 0 Then
* * * * * *Me.txtPhone = Left(Me.txtPhone, Len(Me.txtPhone) - 1)
* * * * * *End If
* *End If
End Sub
If "textbox1" is not just a generic reference to the textbox, then you
need
to know that I actually have 7 textboxes in my userform and the phone
number
is 5th in the tab order, but I have no idea what number it was given when
I
created it. Your help is greatly appreciated. Thank you.
"Per Jessen" wrote:
Hi
Sure it can be done.
In addition to this I would set the MaxLength (Properties) of the TextBox
to
13 to limit the number of digits after the hypen to 4.
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal
Shift As Integer)
If IsNumeric(Chr(KeyCode)) Then
* * If Len(Me.TextBox1) = 1 Then Me.TextBox1 = "(" & Me.TextBox1
* * If Len(Me.TextBox1) = 4 Then Me.TextBox1 = Me.TextBox1 & ")"
* * If Len(Me.TextBox1) = 8 Then Me.TextBox1 = Me.TextBox1 & "-"
Else
* * If Len(Me.TextBox1) < 0 Then
* * * * Me.TextBox1 = Left(Me.TextBox1, Len(Me.TextBox1) - 1)
* * End If
End If
End Sub
Regards,
Per
"JacyErdelt" skrev i meddelelsen
...
Could anyone tell me how I might be able to format a textbox to auto
format
as a person is entering data. For instance when a person is entering
the
phone number (555)555-5555, the 1st 3 digits wills automatically be
place
within the parenthesis and the hypen will be placed when the next 3
digits
have been entered. *I know i can format the box after it has LostFocus,
but
all the time we use advanced stand-alone programs that can be setup to
do
it
as the user is entering info and I thought maybe VBE could do it too.
If
you
have any suggestions, let me know. Thank you.- Skjul tekst i anførselstegn -
- Vis tekst i anførselstegn -
|