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

Forumthread: Währung in Textbox

Währung in Textbox
20.12.2003 15:36:06
Rainer
Hallo Excel-Forumer,
wahrscheinlich bin ich der Hundertste, der diese Frage einwirft. Wie kann man man eine TextBox anweisen, den eingegebenen Zahlenwert (z.B. 12,3) als 12,30 € in die Tabelle zurückzuschreiben? Dabei soll der Wert von Excel auch als Zahl erkannt werden. Im vorliegenden Fall sieht alles wunderbar aus. Nur - Excel sieht darin keine Zahl und schlägt in der Tabellenansicht vor (via Auswahl), den Eintrag in eine Zahl umzuwandeln.

Private Sub TextBox8_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox8.Value = Format(TextBox8.Value, "#,##0.00 €")

Was ist zu tun? Kann mir jemand erklären, wie es richtig geht?
Vorweihnachtliche Grüße an ALLE
Rainer
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Währung in Textbox
20.12.2003 15:51:34
Matthias G
Hallo Rainer,

um ihn als "12,30 €" in die Tabelle zurückzuschreiben, genügt es doch, die Zelle entsprechend zu formatieren (Format-Zellen-Währung).

Oder willst du die Anzeige mit "€" auch in der Textbox?

Matthias
AW: Währung in Textbox
20.12.2003 16:00:21
Rainer
Hallo Matthias,
leider nein. Immer wenn ich einen neuen Datensatz anfüge, wird das Format der Zelle in das Textformat zurückgesetzt. Gelernt habe ich in der Zwischenzeit, dass das an der Eigenschaft der TextBoxen liegt. Irgendwo im Forum bin ich auf die Frage gestoßen:" Überleg mal, warum MS die TextBox TextBox nennt."
Es muss glaube ich eine Umwandlungsroutine angestoßen werden, oder kann man mit einer Anweisung das Währungsformat erzwingen???
Rainer
Anzeige
AW: Währung in Textbox
20.12.2003 16:55:11
Matthias G
Hallo Rainer,

also folgendes klappt:

Private Sub CommandButton1_Click()
Range("A2").Value = TextBox1.Value
End Sub


Gruß,

Matthias
AW: Währung in Textbox
20.12.2003 17:21:54
Rainer
Hi Matthias,
verstehe ich das richtig? Ich soll zusätzlich einen CommandButton einbauen, mit dem ich anschließend der Zelle A2 ein Format/Wert zuweise?
Gruß Rainer
Anzeige
AW: Währung in Textbox
20.12.2003 18:27:02
Matthias G
Hi Rainer,

auf welche Art und Weise weist Du denn der Zelle den Wert der Textbox zu?
Über Die Eigenschaft ControlSource der Textbox?
Oder manuell beim Verlassen der UserForm?

Matthias
AW: Währung in Textbox
20.12.2003 18:51:02
Rainer
Hi Matthias,
ich greife auf zweierlei Arten zu: Im Falle der Datenübernahme so:

Private Sub CommandButton1_Click()
Set frm = UserForm1
ActiveSheet.Select
Range("A65536").End(xlUp).Offset(1, 0).Select
With frm
ActiveCell.Value = .TextBox1.Value
ActiveCell.Offset(0, 1).Value = .TextBox2.Value
ActiveCell.Offset(0, 2).Value = .TextBox10.Value
ActiveCell.Offset(0, 3).Value = .TextBox4.Value
ActiveCell.Offset(0, 4).Value = .CheckBox1.Value
ActiveCell.Offset(0, 5).Value = .TextBox5.Value
ActiveCell.Offset(0, 6).Value = .TextBox11.Value
ActiveCell.Offset(0, 7).Value = .TextBox12.Value
ActiveCell.Offset(0, 8).Value = .TextBox3.Value
ActiveCell.Offset(0, 9).Value = .TextBox9.Value
ActiveCell.Offset(0, 10).Value = .TextBox8.Value
ActiveCell.Offset(0, 11).Value = .ComboBox8.Value
ActiveCell.Offset(0, 12).Value = .ComboBox6.Value
ActiveCell.Offset(0, 13).Value = .ComboBox7.Value
ActiveCell.Offset(0, 14).Value = .ComboBox4.Value
ActiveCell.Offset(0, 15).Value = .TextBox6.Value
ActiveCell.Offset(0, 16).Value = .ComboBox5.Value
ActiveCell.Offset(0, 17).Value = .TextBox7.Value
End With
End Sub

Im Falle der Änderung - so:

Private Sub CommandButton5_Click()
Set frm = UserForm1
ActiveSheet.Activate
Dim varwert As Variant
With frm
varwert = .TextBox1.Value
ActiveCell.Value = .TextBox1.Value
ActiveCell.Offset(0, 1).Value = .TextBox2.Value
ActiveCell.Offset(0, 2).Value = .TextBox10.Value
ActiveCell.Offset(0, 3).Value = .TextBox4.Value
ActiveCell.Offset(0, 4).Value = .CheckBox1.Value
ActiveCell.Offset(0, 5).Value = .TextBox5.Value
ActiveCell.Offset(0, 6).Value = .TextBox11.Value
ActiveCell.Offset(0, 7).Value = .TextBox12.Value
ActiveCell.Offset(0, 8).Value = .TextBox3.Value
ActiveCell.Offset(0, 9).Value = .TextBox9.Value
ActiveCell.Offset(0, 10).Value = .TextBox8.Value
ActiveCell.Offset(0, 11).Value = .ComboBox8.Value
ActiveCell.Offset(0, 12).Value = .ComboBox6.Value
ActiveCell.Offset(0, 13).Value = .ComboBox7.Value
ActiveCell.Offset(0, 14).Value = .ComboBox4.Value
ActiveCell.Offset(0, 15).Value = .TextBox6.Value
ActiveCell.Offset(0, 16).Value = .ComboBox5.Value
ActiveCell.Offset(0, 17).Value = .TextBox7.Value
End With
End Sub

Anzeige
AW: Währung in Textbox
20.12.2003 18:05:30
PeterW
Hallo Rainer,

egal was du in eine Textbox schreibst, es bleibt, wie der Name vermuten läßt, TEXT. Wenn du in der Tabelle die Zahlenwerte brauchst musst du beim Schreiben in die Tabelle den Text in einen Zahlenwert umwandeln, beispielsweise:
Cells(1, 1) = CCur(TextBox8)

Gruß
Peter
Anzeige
AW: Währung in Textbox
20.12.2003 18:28:38
Rainer
Danke Peter, dass Du dazukommst,
muss Dein Eintrag in das Modul unter Option Explicit?
Oder muss die Anweisung in die Userform eingebaut werden?
Kann man mit Cells(1, 1) eine ganze Spalte markieren?
Rainer
AW: Währung in Textbox
20.12.2003 19:29:20
PeterW
Hallo Rainer,

in dem Teil des Codes der Userform, in dem du die Werte in die Tabelle schreibst muss es statt
was auch immer = TextBox1
heißen
was auch immer = CCur(TextBox1)

Mit Cells(1, 1) wird eine einzelne Zelle angesprochen, die mit der Zeilennummer 1 und der Spaltennummer 1, Also Cells(Zeile, Spalte).

Gruß
Peter

Anzeige
AW: Währung in Textbox
20.12.2003 20:09:52
Rainer
Hi Peter,
verzweifel bitte nicht an mir. Die Zelle, die den Wert zurück bekommt wechselt ständig. Über eine Suchroutine aktiviere ich einen Datensatz und gebe den Preis zurück. Insofern weiß ich nicht, was ich mit der Vorgabe Cells(1, 1) anrichte. Wahrscheinlich überschreibe ich damit ständig den Eintrag in A1.
Gruß Rainer
Anzeige
AW: Währung in Textbox
20.12.2003 21:06:16
PeterW
Hallo Rainer,

das Verzweifeln hab ich mir weitestgehend abgewöhnt. :-)

In deinem Code steht beispielsweise die Zeile:
ActiveCell.Offset(0, 3).Value = .TextBox4.Value
Diese müsste, sofern es sich bei TextBox4 um einen Währungsbetrag handelt, geändert werden in:
ActiveCell.Offset(0, 3).Value = .CCur(TextBox4)

Gruß
Peter
Anzeige
AW: Währung in Textbox
20.12.2003 21:25:20
Rainer
Hi Peter,
alles wie vorgeschlagen geändert. Es bleibt verzwickt. Es wird sofort der Debugg.Modus gestartet und die Zeile mit ****.Cur(TextBox8) markiert.
Hast noch eine Idee?
Rainer
AW: Währung in Textbox
20.12.2003 21:41:20
PeterW
Hallo Rainer,

oops, sorry, es muss heißen
ActiveCell.Offset(0, 3).Value = CCur(.TextBox4)

Gruß
Peter
Anzeige
AW: Währung in Textbox
20.12.2003 22:22:44
Rainer
Lieber Peter,
das war BINGO.
Es ist wie ich es gewünscht habe. Beim Verlassen der Zelle wird der €-Wert angegeben und nach Übernahme in die Tabelle als Zahlenwert übertragen.
Vielen herzlichen Danke
auch an Matthias
... frohe Weihnachten
Rainer
AW: Danke für die Rückmeldung - o.T.
21.12.2003 00:09:02
Matthias G
-
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Währung in Textbox richtig umsetzen


Schritt-für-Schritt-Anleitung

Um eine TextBox in Excel so zu konfigurieren, dass sie Währungswerte korrekt in eine Tabelle überträgt, befolge diese Schritte:

  1. TextBox erstellen: Füge eine TextBox in deine UserForm ein.

  2. CommandButton hinzufügen: Füge einen CommandButton hinzu, um die Eingaben zu speichern.

  3. Code einfügen: Nutze den folgenden VBA-Code, um den TextBox-Wert als Währungsformat in die Tabelle zu übertragen:

    Private Sub CommandButton1_Click()
       ActiveCell.Value = CCur(TextBox1.Value) ' Wandelt den Text in einen Währungswert um
    End Sub
  4. Zelle formatieren: Stelle sicher, dass die Zielzelle in deinem Excel-Blatt als Währung formatiert ist (Rechtsklick auf die Zelle → Zellen formatieren → Währung).


Häufige Fehler und Lösungen

  1. Text bleibt Text: Wenn der TextBox-Wert nicht als Zahl erkannt wird, stelle sicher, dass du CCur nutzt, um den Wert in einen Währungsbetrag umzuwandeln.

    Lösung: Verwende ActiveCell.Value = CCur(TextBox8.Value).

  2. Debug-Modus aktiviert: Wenn der Code in den Debug-Modus springt, könnte dies bedeuten, dass der eingegebene Text nicht korrekt formatiert ist.

    Lösung: Überprüfe den Inhalt der TextBox auf gültige Zahlenformate.


Alternative Methoden

  • Direkte Zuweisung: Statt den Code über einen CommandButton auszuführen, kannst du auch die ControlSource-Eigenschaft der TextBox nutzen, um Daten direkt in eine Zelle zu übertragen. Dies funktioniert jedoch nur, wenn die Zelle im Währungsformat vorliegt.

  • Datenübernahme bei Verlassen der TextBox: Du kannst auch den Exit-Ereignis der TextBox verwenden, um den Wert beim Verlassen der TextBox automatisch zu übertragen:

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       ActiveCell.Value = CCur(TextBox1.Value)
    End Sub

Praktische Beispiele

Hier sind einige konkrete Beispiele für die Verwendung von Währungsformat in einer TextBox:

  • Beispiel 1: Übertragung beim Klicken eines Buttons:

    Private Sub CommandButton1_Click()
       ActiveCell.Value = CCur(TextBox1.Value) ' Überträgt den Wert und formatiert als Währung
    End Sub
  • Beispiel 2: Übertragung beim Verlassen der TextBox:

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       ActiveCell.Value = CCur(TextBox1.Value)
    End Sub

In beiden Beispielen wird sichergestellt, dass die Texteingaben in der TextBox als Währungswerte in die Tabelle geschrieben werden.


Tipps für Profis

  • Fehlerbehandlung einfügen: Um sicherzustellen, dass der Code nicht bei ungültigen Eingaben abstürzt, füge eine Fehlerbehandlung hinzu:

    On Error GoTo ErrorHandler
    ActiveCell.Value = CCur(TextBox1.Value)
    Exit Sub
    ErrorHandler:
    MsgBox "Bitte geben Sie einen gültigen Währungsbetrag ein."
  • Automatisierung: Du kannst auch die gesamte Eingabeverarbeitung automatisieren, indem du alle TextBoxen in einer Schleife durchgehst und ihre Werte verarbeitet.


FAQ: Häufige Fragen

1. Warum erkennt Excel die Zahl nicht?
Das liegt daran, dass der Wert in der TextBox als Text gespeichert wird. Verwende CCur, um ihn in einen Währungswert umzuwandeln.

2. Kann ich mehrere TextBoxen gleichzeitig verarbeiten?
Ja, du kannst eine Schleife verwenden, um alle gewünschten TextBoxen zu durchlaufen und deren Werte zu verarbeiten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige