View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Michael Soyka Michael Soyka is offline
external usenet poster
 
Posts: 3
Default how to error-check text box values

On Monday, November 16, 2020 at 1:57:53 AM UTC-5, Auric__ wrote:
Michael Soyka wrote:

Thank you for pointing out that each character could be checked using
KeyPress. In my code I check the entire value string using the Like
operator and stopped thinking right there.

That said, I tried your approach and found a case where it does not
validate, namely values that are pasted into the Text Box. As a
separate issue, it appears that neither the paste (^V) nor backspace
(^H) keys trigger a KeyPress event. This contradicts the Microsoft
documentation for the KeyPress Event that suggests that they will.

I suppose this could be addressed by using the KeyDown event instead
since it is designed to report control characters as well as others.
Then, if a value is pasted, the ^V code handler could validate the value
a character at a time.

Well, try something like this:

Function verify(what As String) As String
Dim L0, tmp As String, outp As String
For L0 = 1 To Len(what)
tmp = Mid$(what, L0, 1)
Select Case tmp
Case "0" To "9"
outp = outp & tmp
End Select
Next
verify = outp
End Function

...called from the textboxes' Change events:

TextBox1.Text = verify(TextBox1.Text)

--
Maniacal laughter is best done privately.


My approach uses the "Like" operator:
tb.Value Like String(Len(tb.Value), "#")
which yields a pass/fail decision but expects the user to fix it.

Your solution removes the bad characters and thwarts stubborn users- better.

Thanks for the conversation.