Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Textbox Zahlenformat

Textbox Zahlenformat
18.02.2008 15:06:00
Frederic
Hi Leute,
ich bräuchte nochmals eure Hilfe, ich komm da nicht weiter, auch im Archiv hab ich nichts gefunden.
Ich habe eine Textbox in einem UF. in diese schreibe ich Beträge rein, z.B. 195,30
Den Input übergebe ich in einem Sheet in Zelle B8 (z.B.)
Er erkennt die Zahl in B8 aber nur als Zahl, wenn ich diese in der TextBox als 195.30 eintrage.
Gibt es hier noch andere Formatierungsmöglichkeiten?
Danke und Gruß.
Frederic

Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox Zahlenformat
18.02.2008 15:10:07
Jan
Hi,
[b8]= CDbl(textbox1)
mfg Jan

AW: Textbox Zahlenformat
18.02.2008 15:16:33
Frederic
Danke soweit, kleines Prob. noch (bin noch leider kein VBA Profi):
Das UF wird in Sheet (Iindex) gestartet.
Der Wert der textbox wird in Sheets(NR) B8 eingetragen.
Kannst du mir noch kurz helfen?
Danke.
Frederic

Anzeige
AW: Textbox Zahlenformat
18.02.2008 15:20:45
Frederic
Hab noch was probiert.
Mit dem Code:
Sheets("NR").[c2] = CDbl(amount)
trägt er den Betrag zwar richtig ein und berechnet dann auch die summe, aber er bringt:
Typen unverträglich...
Idee?
Frederic

AW: Textbox Zahlenformat
18.02.2008 15:51:00
Peter
Hallo Frederic,
heißt deine TextBox denn wirklich amount?
sollte es nicht besser so heißen: Sheets("NR").[C2] = CDbl(TextBox1) ?
Gruß Peter

Anzeige
AW: Textbox Zahlenformat
18.02.2008 16:05:32
Frederic
Ja sie heisst wirklich so.
Hier der ganze Code:

Private Sub amount_Change()
Sheets("NR").Visible = True
Sheets("NR").[C2] = CDbl(TextBox1)
netamount = Sheets("NR").Range("E2").Value
taxamount = Sheets("NR").Range("F2").Value
user = Sheets("NR").Range("AA1")
End Sub


es heisst aber immer, TYPEN UNVERTRÄGLICH, aber eintragen tut ers richtig und das format passt dann auch. ich muss aber immer DEBUGGEN, sonst lässt er mich ncht raus.
Was mach ich falsch?

Anzeige
AW: Textbox Zahlenformat
18.02.2008 16:37:27
Renee
Hi Frederic,
Ich finde diesen Code etwas unsinnig, da er bei jeder Eingabe in die Textbox durchlaufen wird.
Wenn schon, schlage ich anstelle deines Codes, diesen vor:

Private Sub amount_Exit(ByVal Cancel As MSForms.ReturnBoolean)
On Error GoTo Falsche_eingabe
Sheets("NR").[C2] = CDbl(Replace(amount, ",", "."))
Sheets("NR").Visible = True
netamount = Sheets("NR").Range("E2").Value
taxamount = Sheets("NR").Range("F2").Value
user = Sheets("NR").Range("AA1")
Exit Sub
Falsche_eingabe:
MsgBox "Der amount ist falsch!"
End Sub


GreetZ Renée

Anzeige
AW: Textbox Zahlenformat
18.02.2008 16:38:00
Peter
Hallo Frederic,
aus deinem Code-Beispiel geht leider nicht hervor, wie netamount, taxamount, user aussehen, bzw. was das sind. Sind das benannte Cells, sind das Variablen - wie sind die dann formatiert, hast du sie überhaupt irgendwo definiert?
Ohne diese Angaben kann man dein Makro nicht nachvollziehen.
Gruß Peter

Anzeige
AW: Textbox Zahlenformat
18.02.2008 16:58:51
Frederic

Private Sub amount_Change()
Sheets("NR").Visible = True
Sheets("NR").[C2] = CDbl(TextBox1)
End Sub


Du kannst den Code auch nur so nehmen, die anderen Textboxen werden aufgrund von Berechnungen im Sheet "NR" gefüllt.
Gruß

Anzeige
siehe meine Antwort oben... (owT)
18.02.2008 17:10:30
Renee

AW: siehe meine Antwort oben... (owT)
18.02.2008 17:15:00
Frederic
ich Depp :-) Danke funtz einwandfrei....
Frederic

AW: siehe meine Antwort oben... (owT)
18.02.2008 17:23:00
Frederic
@ Renee....
Dein Code geht zwar, aber sobald ich in meine Textbox (amount) eine Zahl mit Komma eintippe,
erkennt er es nicht!
Beispiel: 900,25
macht er draus:
90025,00
Noch nen Tipp?
Sorry, bin noch kein Profi in VBA
Frederic

Anzeige
AW: siehe meine Antwort oben... (owT)
18.02.2008 20:30:00
Renee
Hi Frederic,
Kannst du mal ein Beispiel hochladen. Bei mir funktionier der Code ohne Probleme.
Renée

AW: Textbox Zahlenformat
18.02.2008 21:51:39
Peter
Hallo Frederic,
vielleicht hilft dir mein kleines Beispiel weiter: https://www.herber.de/bbs/user/50004.xls
Gruß Peter
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Textbox Zahlenformat in Excel optimieren


Schritt-für-Schritt-Anleitung

Um das Zahlenformat in einer Textbox in Excel korrekt zu gestalten, befolge diese Schritte:

  1. Textbox einfügen: Füge eine Textbox in dein UserForm (UF) ein.
  2. Code hinzufügen: Du musst einen VBA-Code in das UserForm einfügen, um den Wert der Textbox in eine bestimmte Zelle zu übertragen. Zum Beispiel:
    Private Sub amount_Change()
       Sheets("NR").Visible = True
       Sheets("NR").[C2] = CDbl(Replace(TextBox1, ",", "."))
    End Sub
  3. Fehlerbehandlung einfügen: Um sicherzustellen, dass der Benutzer eine korrekte Zahl eingibt, füge eine Fehlerbehandlung hinzu:
    Private Sub amount_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       On Error GoTo Falsche_eingabe
       Sheets("NR").[C2] = CDbl(Replace(amount, ",", "."))
       Exit Sub
    Falsche_eingabe:
       MsgBox "Der amount ist falsch!"
    End Sub

Häufige Fehler und Lösungen

  • Typen unverträglich: Dieser Fehler tritt auf, wenn der eingegebene Wert nicht als Zahl interpretiert werden kann. Stelle sicher, dass du Replace verwendest, um Kommas in Punkte umzuwandeln.

  • Zahl wird nicht korrekt eingetragen: Wenn du eine Zahl wie 900,25 eingibst und sie als 90025,00 gespeichert wird, überprüfe, ob du das richtige Format verwendest. Setze Replace in deinem Code ein, um sicherzustellen, dass das Komma korrekt behandelt wird.


Alternative Methoden

Eine alternative Methode besteht darin, die Texteinträge vor der Übergabe an die Zelle zu formatieren:

  • Verwendung von Format-Funktionen: Du kannst auch die Format-Funktion verwenden, um sicherzustellen, dass die Zahl im gewünschten Format erscheint:
    Sheets("NR").[C2] = Format(CDbl(Replace(TextBox1, ",", ".")), "0.00")

Praktische Beispiele

Hier ist ein einfaches Beispiel, um das Konzept zu verdeutlichen:

Private Sub amount_Change()
    On Error GoTo Falsche_eingabe
    Dim inputValue As Double
    inputValue = CDbl(Replace(TextBox1.Text, ",", "."))
    Sheets("NR").[C2] = inputValue
    Exit Sub
Falsche_eingabe:
    MsgBox "Bitte eine gültige Zahl eingeben!"
End Sub

In diesem Beispiel wird der Wert der Textbox in die Zelle C2 des Arbeitsblatts NR übertragen, nachdem das Komma ersetzt wurde.


Tipps für Profis

  • Debugging erleichtern: Nutze Debug.Print, um den Wert der Variablen während des Programmablaufs zu überprüfen. Das kann helfen, Fehler schneller zu finden.

  • Benutzerfreundlichkeit erhöhen: Füge nützliche Kommentare in deinen Code ein, um zukünftigen Benutzern das Verständnis zu erleichtern.

  • Testen: Teste deinen Code gründlich mit verschiedenen Zahlenformaten, um sicherzustellen, dass er robust ist.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass der Benutzer nur Zahlen eingibt?
Du kannst die KeyPress-Ereignisprozedur der Textbox verwenden, um nur numerische Eingaben zuzulassen.

2. Was kann ich tun, wenn die Textbox immer noch falsche Werte speichert?
Überprüfe deinen Code auf mögliche Fehler und stelle sicher, dass du Replace korrekt verwendest, um die Eingabe zu formatieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige