Summen in Textboxen eingeben

Moderator: ModerationP

Summen in Textboxen eingeben

Beitragvon Garfield17 » 10. Aug 2018, 11:53

Hallo zusammen,

ich bin ein ziemlicher VBA Neuling und bin auf ein Problem gestoßen.
Ich habe in Excel VBA eine Userform erstellt mit verschiedenen Textboxen usw. Das hat auch alles ziemlich gut geklappt. Jetzt zu meinem Problem:
Ich öffne die Userform über einen Click auf einen Button und dann erscheint diese. Jetzt würde ich gerne in eine Textbox eine Summe aus Zahlen eingeben (verschiedene Geldbeträge), also sowas:

Textbox1: =1,50+3,00+2,00

In meiner Datentabelle soll dann das Ergebnis stehen. Wenn ich dann aber auf ausführen klicke kommt ein Laufzeifehler '1004'... Was hat das zu bedeuten?
Der Fehler tritt nicht auf, wenn ich Punkte statt Kommata verwende. D.h. es funktioniert, wenn ich folgendes in die Userform eingebe:

Textbox1: =1.50+3.00+2.00

In meiner Datentabelle steht dann entsprechend: 6,50€ so wie ich es haben will. Zum Eintippen wären mir Kommata aber lieber.

Liegt es am Format der TExtbox? Folgendes habe ich verwendet:

Sheets("Einkäufe").Cells(erste_freie_Zeile, 6) = Format(TextBox2.Text, "#,##0.00 €")

Eigentlich sind ja Textboxen nicht dazu da, um Formel einzugeben. Aber für jeden Wert eine extra Textbox zu machen geht auch nicht, weil im Voraus die Anzahl der Summanden unbekannt ist und deswegen die Anzahl der Textboxen nicht festliegt bzw. bei jeder Eingabe anders ist. :roll:

Ich bin über jede Hilfe sehr sehr dankbar!

Grüße
Garfield17
Garfield17
 

Re: Summen in Textboxen eingeben

Beitragvon Gast12598214 » 10. Aug 2018, 13:08

und wenn du als Format Sheets("Einkäufe").Cells(erste_freie_Zeile, 6) = Format(TextBox2.Text, "#,##0,00 €")

nimmst? du hast doch vorgegeben 0.00€
Gast12598214
 

Re: Summen in Textboxen eingeben

Beitragvon Garfield17 » 10. Aug 2018, 14:45

Das habe ich auch schon probiert, aber es hat leider nicht geklappt.
Es kommt die gleiche Fehlermeldung. :cry:
Garfield17
 

Re: Summen in Textboxen eingeben

Beitragvon Ralf A » 10. Aug 2018, 15:24

Hi Garfield,

das ist kein Problem, sondern eine Vorgabe. In VBA (wie auch in allen anderen Programmiersprachen) gilt die angelsächsische Schreibweise für Zahlen. Und da ist nunmal das Dezimaltrennzeichen der Punkt. Gewöhn Dich schon mal dran.... :P

Du könntest zwar mit Replace arbeiten
Code: Alles auswählen
Sheets("Einkäufe").Cells(erste_freie_Zeile, 6) = Replace(TextBox2.Text,",",".")

würde ich aber nicht empfehlen....
Ciao, Ralf
Der sicherste Ansatz für einen Irrtum ist der Glaube, alles im Griff zu haben.

Bild
Ralf A
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 207
Registriert: 17. Mär 2018, 11:47

Re: Summen in Textboxen eingeben

Beitragvon RPP63 » 10. Aug 2018, 15:56

Moin!
Ich bin immer wieder überrascht (eher erschüttert), dass ein VBA-Neuling UserForms nutzen will, ohne im Entferntesten Ahnung von der Materie zu haben.
Hier kommt ja (zusätzlich zum eben gegebenen Hinweis) noch erschwerend hinzu, dass TextBoxes (oh Wunder!) TEXT enthalten.

Für das Beispiel der Threaderöffnung:
Auch ich benutze (missbrauche) Excel manchmal als Taschenrechner, wenn ich so eine simple Addition vornehmen will.
Ich schreibe dann in die markierte Zelle (auf dem Ziffernblock, geht ratzfatz):
+1,5+3+2
Enter, und schwupps zeigt mir Excel 6,5 in der Zelle an.
(hätte ich aber so eben auch im Kopf errechnen können :mrgreen: )
Das + kann natürlich mit einem = ersetzt werden, bloss dies befindet sich nicht auf dem Ziffernblock … 8-)

Für die Textbox funktioniert so etwas (Direktfenster!):
Ich schreibe in TextBox1
5+2,6+4,7548+9-1
Auswertung dann mittels
Code: Alles auswählen
Evaluate(Replace(TextBox1, ",", "."))

Ergibt: 20,3548

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9722
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Summen in Textboxen eingeben

Beitragvon Garfield17 » 11. Aug 2018, 10:19

Danke für Eure Antworten!

Ich werde es gleich ausprobieren und dann berichten.

@Rpp63: Dank für deine Antwort. Ja, ich bin ein VBA Neuling, aber habe durchaus weitergehende Programmierkentnisse in Matlab, Mathematica, R,C++ usw. Du hast natürlich recht, dass man die drei Zahlen auch im Kopf rechnen kann. Das sollte aber nur das Problem illustrieren. Das ganze wird eingebettet in eine komplexere Gesamtlösung.
Ich weiß ja nicht wie Du dich einer Programmiersprache näherst, aber bei mir läuft das so: Man macht sich das Problem bewusst und schaut ob es irgendwo einen kleinen Besipielcode gibt, der das schon in etwa kann, versucht diesen zu verstehen und dann auf seine eigenen Bedürfnisse auszubauen. Dabei liest man dann nebenher noch ein bisschen in Foren oder auf Hilfeseiten und in der Regel klappt das dann. Das klassische Learning by Doing.
Sorry, dass ich nicht erst einen 500 seitigen VBA-Einführungswälzer gelesen habe...
Meine Userform funktioniert auch tadellos! Also kann mein Weg nicht der schlechteste sein!

Dass Textboxen Text enthalten ist mir klar und habe ich auch bereits in der Frage kommuniziert. Mir ist eben nur aufgefallen, dass derart simple Rechnungen trotzdem funktionieren :) und bin auf oben genanntes Problem gestoßen.
Die Quintessenz ist also, dass Excel mit Kommazahlen rechnen kann, VBA braucht aber den üblichen Punkt. Dann weiß ich jetzt Bescheid :wink:

Gruß

Garfield
Garfield17
 

Re: Summen in Textboxen eingeben

Beitragvon Storax » 11. Aug 2018, 10:38

Und die Userform1 wird mit Userform1.show angezeigt und in der userform stehen solche Dinge we Unload.
Und wenn das so ist, stimmt
...habe durchaus weitergehende Programmierkentnisse in Matlab, Mathematica, R,C++ ...
diese Aussage nicht.
Und was ist das für eine Aussage
...Die Quintessenz ist also, dass Excel mit Kommazahlen rechnen kann, VBA braucht aber den üblichen Punkt. Dann weiß ich jetzt Bescheid ...

Wenn Du weitgehende Programmier-Erfahrungen hättest, dann würdest Du das nicht schreiben, sondern wüsstest, das ist eine reine Konvention.
Often the original poster is rather clueless, helping them on the question is only spoon feeding them,
and there is little to no chance the question will help anyone in the future.
Press any key to continue - or any other key to abort.
Benutzeravatar
Storax
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 2856
Registriert: 22. Okt 2013, 18:18

Re: Summen in Textboxen eingeben

Beitragvon Garfield17 » 12. Aug 2018, 10:25

Nochmal zum Thema Dezimaltrennzeichen:

Mir ist natürlich klar, dass es Konvention ist Dezimalzahlen mit Punkt zu trennen. Ist den oben beschriebenen Programmiersprachen ja auch so (ich ja auch bereits betont habe "[...] den üblichen Punkt [...]").

Wenn man aber noch nicht viel (eigentlich gar nichts) In Excel VBA programmiert hat, wird man sich doch wohl noch fragen dürfen, warum man im Excel Tabellenblatt ohne weiteres mit Kommazhalen rechnen kann, in einer Userform, die für mich nur Daten in eine Tabelle eintragen soll (mit kleinen Rechnungen) eben nicht. Das hat sich ja jetzt geklärt. Vielen Dank dafür!

Da es weiterhin meine erste Userform ist, die ich programmiere, erhebe ich auch keinen Anspruch darauf, dass diese perfekt und elegant programmiert ist.
Garfield17
 

Re: Summen in Textboxen eingeben

Beitragvon snb » 12. Aug 2018, 10:53

Ich würde darauf verzichten in einem Textbox Berechnungen zu machen.
Besser sollte man verschiedene Textboxen benützen: TextBox10=TextBox1 + TextBox2 * TextBox3-TextBox4

NB. Excel <> VBA; Excel is bestimmt vom Windows International Settings (z.B. decimalseparator), VBA nicht.
Zuletzt geändert von snb am 12. Aug 2018, 11:53, insgesamt 1-mal geändert.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6064
Registriert: 25. Sep 2014, 16:37

Re: Summen in Textboxen eingeben

Beitragvon RPP63 » 12. Aug 2018, 11:08

Ich wundere mich ein wenig, dass hier noch immer Antworten kommen.
Eigentlich habe ich doch oben alles beschrieben.
(Textbox: Evaluate(Replace()),
Excel-Zelle: mit führendem + oder -)

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9722
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Summen in Textboxen eingeben

Beitragvon snb » 12. Aug 2018, 11:55

@RPP

Du wunderst das es hier ein Forum/Agora ist ?
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6064
Registriert: 25. Sep 2014, 16:37

Re: Summen in Textboxen eingeben

Beitragvon RPP63 » 12. Aug 2018, 12:07

Nö! :wink:
Ich wundere mich lediglich über Deine Antwort von 11:53.
Schließlich schrieb der TE:
Aber für jeden Wert eine extra Textbox zu machen geht auch nicht, weil im Voraus die Anzahl der Summanden unbekannt ist und deswegen die Anzahl der Textboxen nicht festliegt bzw. bei jeder Eingabe anders ist.

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9722
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Summen in Textboxen eingeben

Beitragvon Garfield17 » 12. Aug 2018, 12:58

Nochmals danke für alle Antworten.

Ich habe es mit der Replace Variante umsetzen können. Habe noch weitere Abfragen eingebaut, weil manche Textboxen leer bleiben oder in manchen auch keine Berechnung stattfindet. Da gab es zunächst Probleme mit Replace. Diese konnte ich mit meinen laienhaften VBA Kenntnissen aber beheben.

Mit der Lösung bin ich insgesamt zufrieden.
Den Hinweis der verschiedenen Textboxen klappt wie schon angesprochenen bei mir nicht, weil im Voraus nicht klar ist, wie viele Summanden eingegeben werden müssen und auf Verdacht einfach eine hinreichend hohe Zahl an Textboxen zurVerfügung zu stellen, die dann ggf. leer blieben, hat mir auch nicht zugesagt.
Man bräuchte eigentlich sowas in der Art, dass wenn die eine Textbox gefüllt wurde, eine weitere Leere auftaucht, in der ein weiterer Summand eingegeben werden kann und danach dann noch eine usw. Dadurch hätte aber das Dateneingeben länger gedauert und ich hatte auch keinen Ansatz wie ich das machen könnte. Außerdem überstiege das das Kosten-Nutzen-Verhälznis des Projekts :wink:
Garfield17
 

Re: Summen in Textboxen eingeben

Beitragvon snb » 12. Aug 2018, 16:40

So kann es auch:

Setze mal im Textbox

12,34 Enter
*2 Enter
^4 Enter
12/ Enter usw.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6064
Registriert: 25. Sep 2014, 16:37

Re: Summen in Textboxen eingeben

Beitragvon Garfield17 » 12. Aug 2018, 17:24

Ich kann deinen Dateianhang leider nicht sehen (Habe keine Berechtigung dazu)

Ich habe ja in meiner Userform mehrere Textboxen und bereits die entsprechenden Tab-Positionen gesetzt. Daher springt es es bei mir dann bei Enter direkt zur nächsten TextBox. Ich glaube aber nicht, dass das der von Dir gewollte Effekt ist?

Gruß
Garfield17
Garfield17
 

Nächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Bing [Bot], Hajo_Zi, Klaus-Dieter, lupo1, ReneLich, silangan und 20 Gäste