HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Forumbeitrag
Excel-Version des Fragestellers:
bis 2003
Erfahrungslevel des Fragestellers:
VBA nur mit Recorder
daniel
13.01.2025 15:46:16
AW: Von Userform richtig eintragen lassen
Hi
in Textboxen steht immer Text.
Wenn du einen Text direkt in eine Zelle schreibst (Cells(...).Value = Textbox1.Text), wird Excel trotzdem prüfen, ob dieser Text eine Zahl, ein Datum oder eine Formel sein könnte und wenn es eine solche erkennt, wird es die Umwandlung durchführen.
das Problem an der Sache ist, dass Excel und VBA hier amerikanisch miteinander reden, dh dein Komma wird nicht das Dezimalzeichen, sondern als Tausendertrennpunkt gewertet.

die Lösungsmöglichkeiten wären:
a) du akzeptierst dass und schreibst die Zahl im amerikanischen format: Cells(...).Value = Textbox1.Text mit 1.356
b) tu ärgerst deinen Anwender nicht mit solchen Kinkerlitzchen und tauschst das Komma gegen den Punkt: Cells(...).Value = Repalce(Textbox1.Text, ",", ".") das hätte auch den Vorteil, dass der Anwender beide Varianten eintragen kann und es immer funktioniert, auch in einem amerikanischen Excel
c) du wandelst den Text vorher schon in eine Zahl, das übliche CDbl orientiert sich an der aktuellen Ländereinstellung: Cells(...).Value = CDbl(textbox1.text)
hier ist der Nachteil, dass dir der Code einen Fehler quittiert, wenn sich der Text nicht in eine Zahl wandeln lässt (Fahlscheingabe), was dann Absicherungen oder Vorabprüfungen erfordert.
d) tu teilst Excel mit, dass der Wert, der jetzt kommt, in Deutsch ist: Cells(...).FormulaLocal = Textbox1.Text

Gruß Daniel
Als Antwort auf diesen Beitrag
chris58
13.01.2025 15:00:57
Von Userform richtig eintragen lassen
Hallo !
Ich habe hier Hilfe erhalten und habe die Datei nochmals hier eingestellt, da ich keine Lösung für ein weiteres Problem, obwohl lange herumgedoktort, habe.
Es ist folgendes:
Wenn ich die UF aufrufe dan kommt an der ersten Stelle die Eingabe "Anlaufstrom eintragen". Wenn ich nun z.B. einen Anlaufstrom mit 1,356 eintrage, dann stellt mir die Testbox1 die Zahl in B6 ......... jedoch steht dan dort...........1 356,000 und nicht wie die Eingabe lautete. Eigentlich sollte die Zahl korrekt oder auf/ oder abgerundet eingetragen werden.
Was kann ich dagegen machen ?
Bitte um Hilfe
Danke
chris58

Hier der vorhergehende Beitrag:
https://www.herber.de/forum/messages/2001558.html
und hier die Datei:
https://www.herber.de/bbs/user/174848.xls
Folgenachrichten
Antwort auf Beitrag erstellen

Beispieldatei hochladen