Difficulty restricting characters

K

kartune85

I've used the following code to try and restrict certain characters to a
textbox:

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc(".")
If InStr(1, Me.TextBox1.Text, ".") > 0 Then
KeyAscii = 0
End If
End Select
End Sub

The period is not the only character I'm trying to restrict but it is
one of them. Whenever I've tried to use 'Select Case', the code never
seems to do anything... at all. The Textbox2 is used as the savename so
I can't allow any weird characters to get typed in.

Can anyone help me out regarding this?

Thanks,

Kartune85
 
F

Franz Verga

"kartune85" <[email protected]> ha
scritto nel messaggio
I've used the following code to try and restrict certain characters to a
textbox:

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case Asc(".")
If InStr(1, Me.TextBox1.Text, ".") > 0 Then
KeyAscii = 0
End If
End Select
End Sub

The period is not the only character I'm trying to restrict but it is
one of them. Whenever I've tried to use 'Select Case', the code never
seems to do anything... at all. The Textbox2 is used as the savename so
I can't allow any weird characters to get typed in.

Can anyone help me out regarding this?

Hi Kartune,

Instead of a text box to input the filename, you could try to use the Excel
Save As window:

Application.Dialogs(xlDialogSaveAs).Show


--
Hope I helped you.

Thanks in advance for your feedback.

Ciao

Franz Verga from Italy
 
K

kartune85

With the SaveAs dialog, I still can't restrict certain characters. I'v
made the form for end-users so I have to try and make it easy to us
and idi0t-proof.

I ended up using:

If InStr(1,TextBox2.Text,".") > 0 then
MsgBox "Invalid characters, please re-enter."
cancel = true
Else...

The only problem is that I repeated InStr(...) for each individua
character and added them up in a variable. (SearchStr = InStr(...".")
InStr(..."/")...)

Thanks anyway, but if anyone knows an easier way, I'm open fo
suggestions.

Kartune8
 
N

NickHK

I'd go with Franz's suggestion; let the OS decide if the filename is valid
or not.

On Error resume next
WB.SaveAs "C:hhhh/\\:::tt.txt.txt.xls"
If Err.number>0 then
'deal with the problem

By the way a file name of MyExcelFile.txt.xls is a valid name

NickHK
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top