Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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) "Greybeard" wrote: 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 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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 "Greybeard" wrote: 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 |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On 25 Oct, 10:29, Mike H wrote:
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 "Greybeard" wrote: 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 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 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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. "Greybeard" wrote: On 25 Oct, 10:29, Mike H wrote: 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 "Greybeard" wrote: 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 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 |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
backspace key | Excel Programming | |||
No Backspace key in VBA Debugger Help | Setting up and Configuration of Excel | |||
Delete row if formula brings back an error | Excel Programming | |||
vbBack... not like a backspace | Excel Programming | |||
Backspace and percentage, please help | Excel Programming |