Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Rechnen mit Textboxen in Userform
18.05.2018 07:26:08
David
Hallo zusammen,
habe einen kuriosen Fehler in einer Programmierung, der seltsamerweise auch nicht immer auftritt.
Ich nutze eine Userform, und innerhalb dieser Userform zwei Textboxen für Eingaben und eine Textbox, um das Ergebnis auszugeben.
Bei Textbox.Change verändert sich das Ergebnis entsprechend.
Sporadisch (jedes 50. Mal oder so) erscheint in der "Ergebnis"-Textbox ein vollkommen abstruser, riesiger Wert, also etwa 10080, obwohl in den beiden anderen "4,2" und "2,4" steht und daher nur 10,08 rauskommen dürfte.
Was mache ich falsch?
Hier der Code:

Private Sub TextBox3_Change()
If TextBox3.Value  "" Then
If IsNumeric(TextBox3.Value) = False Then
TextBox3 = ""
MsgBox ("Bitte hier nur Zahlen eingeben." & vbNewLine & "Evtl. ist die Feststelltaste  _
aktiviert.")
Else
TextBox1 = TextBox3.Value * TextBox2.Value
End If
End If
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Rechnen mit Textboxen in Userform
18.05.2018 08:21:21
ChrisL
Hi David
In VBA ist der Punkt das Dezimaltrennzeichen. Versuche mal mit Replace(TB.Text, ",", ".").
cu
Chris
AW: Rechnen mit Textboxen in Userform
18.05.2018 17:29:33
David
Hi,
Danke für den Tipp. Versuche ich mal.
Allerdings habe ich ausprobiert, was passiert, wenn ich zum Beispiel statt "4,2" "4.2" eingebe. Dann macht er daraus 42. Soweit so gut.
Aber ich kann nicht rekonstruieren, wie aus einstelligen Multiplikatoren (mit ein bis zwei Nachkommastellen) vier- bis fünfstellige Ergebnisse werden können. Hat das auch mit dem Dezimaltrenner zu tun?
Lg.
David
AW: Rechnen mit Textboxen in Userform
18.05.2018 17:44:23
ChrisL
Hi David
Wenn die Kommastellen ignoriert werden, ergibt 42*24 = 1008. OK fehlt eine Null, keine Ahnung (muss an den Fliesskomma liegen ;)
Allerdings bin ich selber immer etwas unsicher, was die Lösung betrifft, da ich es aufgrund anderer Ländereinstellung (bei mir ist Punkt auch sonst das Dezimaltrennzeichen) nicht testen kann. Zum Glück tritt das Problem sehr häufig auf, weshalb du im Archiv/Netz garantiert einen passenden Beitrag zum Thema findest. ;)
cu
Chris
Anzeige
AW: Bei Textbox2= robert ?
18.05.2018 22:13:33
Gerd
Hallo, ein Ansatz!
Private Sub TextBox3_AfterUpdate()
If IsNumeric(TextBox2) And IsNumeric(TextBox3) Then
TextBox1 = CDbl(TextBox2) * CDbl(TextBox3)
Else
MsgBox "Bitte Zahlen eingeben!"
End If
End Sub

Gruß Gerd
Ja,klar- da Text... ;-) aber...
19.05.2018 07:22:53
robert
der TE hat ja geschrieben, dass er 2 mal Zahlen eingibt und es wird nicht richtig
gerechnet. Ich will-und meistens kann ich auch nicht-eine bessere,sichere Lösung
anbieten,ich will den bestehenden ! Code zum laufen bringen.
Die Frage ist ja, warum es beim TE nicht funktioniert, denn ich gehe davon aus,
dass wirklich Zahlen eingetragen werden.
Gruß
robert
Anzeige
AW: Rechnen mit Textboxen in Userform
19.05.2018 12:48:26
Gerd
Hallo
klemme störende Eingaben ab oder konvertiere vor der Mulitplikation selbst.
Private Sub TextBox3_AfterUpdate()
If IsNumeric(TextBox2) And IsNumeric(TextBox3) Then
TextBox1 = CDbl(Replace(TextBox2, ".", ",")) * CDbl(Replace(TextBox3, ".", ","))
Else
MsgBox "Bitte Zahlen eingeben!"
End If
End Sub
Gruß Gerd

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige