Backspace brings up an error

G

Greybeard

I have a userform with 4 textboxes for 4 different sets of numerical
data, which are then processed to give a result.
The basic code for each is:
Public Sub TextBox1_Change()
Dim current As Single
current = TextBox1.Text

When the correct data is put in all works fine, but if I make a
mistake and use backspace to delete the entry so I can put in the
correct numbers I get a "Run Time error 13, Type mismatch", when the
first number is deleted (ie the last to be removed by the backspace).

The debug highlights the current = terxtbox1.text line but that's it.
Can anyone please put me right so I can just change the numbers by
backspace?
Thanks
Tony
 
J

Joel

Try changing the delcaration of Current to

Dim current As String


If you need to convert this to a number use the VAL function

Dim current As Single
current = Val(TextBox1.Text)
 
M

Mike H

Hi,

2 ways
current = Val(TextBox1.Text)

or
If TextBox1.Text <> "" Then
current = TextBox1.Text
End If

You seem to have a data type confusion with current dimensioned as Single
while taking the value .text

Mike
 
G

Greybeard

Hi,

2 ways
current = Val(TextBox1.Text)

or
If TextBox1.Text <> "" Then
    current = TextBox1.Text
End If

You seem to have a data type confusion with current dimensioned as Single
while taking the value .text

Mike

Hi,
Thanks to all of you who replied.
Through lots of trial and error (no pun intended) I have actually got
it to work fine using the following in each of the 4 subs for each of
the Textboxes:
Public Sub TextBox1_Change()
Dim current As Single
On Error Resume Next
current = TextBox2.Text
End Sub
It's probably all wrong, but it does not have any adverse effects on
the overall running of the whole programme so, as a pragmatist, it's a
case of 'if it works don't fix it'.
Regards Tony
 
J

JLGWhiz

You did not get it to work, you only got it to quit sending the error
message. But if it satisfies you, then that is all that matters.
 

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