Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1648to1652
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
Inhaltsverzeichnis

Addieren von Textfeldern, VBA

Addieren von Textfeldern, VBA
17.10.2018 15:33:35
Textfeldern,
Hallo zusammen!
Habe eine Userform erstellt, in der über eine Commandbutton die Summe aus den Werten aus 5 Textboxen addiert wird und in eine bestimmte Zelle im Tabellenblatt eingetragen wird. Wenn jedoch nicht alle 5 Textboxen ausgefüllt werden, erscheint eine Fehlermeldung. Und genau das sollte nicht passieren. Es sollte immer eine Summe erscheinen, egal wie viele Textboxen ausgefüllt sind. Wie bekomme ich das hin?
Das habe ich bis jetzt:

Private Sub CommandButton11_Click()
Range("C27") = CInt(TextBox10.Value) + CInt(TextBox11.Value) +
CInt(TextBox12.Value) +
CInt( TextBox14.Value) + CInt(TextBox15.Value)
End Sub

Danke

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Addieren von Textfeldern, VBA
17.10.2018 15:47:46
Textfeldern,
Hi
die Umwandelfunktionen Cxxx() können den Leerstring ("") nicht in eine Zahl umwandeln und brechen dann mit einem Fehler ab.
wenn nur Ganzzahlen eingegeben werden sollen, dann könntest du VAL verwenden, weil dieses bei nicht wandelbaren Texten eine 0 als Ergebnis ausgibt und keinen Fehler.
Range("C27") = Val(TextBox10.Value) + Val(TextBox11.Value) + ...
allerdings musst du bei VAL aufpassen, wenn auch Kommazahlen verwendet werden, weil es immer den Punkt als Dezimalzeichen annimmt und nicht die Länderversion berücksichtigt (ggf bitte testen, das Verhalten kann auch versionsabhängig sein).
ansonsten auch so:
Range("C27") = CInt(IIF(IsNumeric(Textbox10.Value), Textbox10.Value, 0)) + ...
Gruß Daniel
Anzeige
AW: Addieren von Textfeldern, VBA
17.10.2018 15:53:18
Textfeldern,
Wahrscheinlich sind deine Textbox-Inhalte als String definiert und nicht als Zahl.
Entweder umdefinieren oder alle Leerwerte in eine Null umwandeln:
If TextBox1.Value = "" Then TextBox1.Value = 0
...
Und bei der Aufsummierung immer mal 1 nehmen:
CInt(TextBox10.Value) * 1 + CInt(TextBox11.Value) * 1 + .....
AW: Addieren von Textfeldern, VBA
17.10.2018 17:13:38
Textfeldern,
Hi
Hat sich plausibel angehört aber es tut sich nichts. "Laufzeitfehler `13` Typen unverträglich " erscheint.
Private Sub CommandButton11_Click()
Range("C27") = CInt(TextBox10.Value) * 1 ...
If TextBox10.Value = "" Then TextBox10.Value = 0
If TextBox11.Value = "" Then TextBox11.Value = 0
If TextBox12.Value = "" Then TextBox12.Value = 0
If TextBox14.Value = "" Then TextBox14.Value = 0
If TextBox15.Value = "" Then TextBox15.Value = 0
End Sub
So sieht´s aus...
Anzeige
AW: Addieren von Textfeldern, VBA
17.10.2018 17:38:31
Textfeldern,
naja, hört sich plausibel an, ist aber größtenteils Unsinn.
1. TextBoxen enthalten immer Text, da kannst du nichts einstellen.
2. wenn du einen Text in eine Berechnung mit +-*/ einbindest dann wird VBA versuchen, diesen Text in eine Zahl zu wandeln, und wendet hierbei dann aber die gleichen Regeln an wie die Umwandlungsfunktioinen Cxxx, dh wenn dein CInt(Textbox1.Text) auf einen Fehler läuft, dann läuft auch Textbox1.Text * 1 auf einen Fehler. CInt(Textbox1.Text) * 1 ist sowieso überflüssig, weil dein CInt den Text schon in eine Zahl gewandelt hat und das *1 nicht mehr bringt.
also entweder CInt(Textbox1.Text) oder Textbox1.Text * 1, aber beides zusammen ist doppeltgemoppelt.
Theoretisch könntest du sogar das CInt auch weglassen, weil du mit + schon eine Berechnung hast, bei der Texte automatisch in Zahlen gewandelt werden. Funktioniert aber nur theoretisch, denn wenn nur Texte und nur + vorkommt, interpretiert VBA das + als & und aus "1" + "2" + "3" wird nicht 6, sondern "123".
die Leeren TextBoxen mit 0 zu füllen kann helfen, soweit ok, aber du musst es natürlich machen bevor du die Textboxwerte addierst und nicht danach.
gruß Daniel
Anzeige
AW: Addieren von Textfeldern, VBA
17.10.2018 17:23:41
Textfeldern,
Hallo Daniel
Das mit dem VAL und nem Punkt als Trennzeichen funktioniert!
Danke!

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige