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

Forumthread: Textbox mit Zahlenformat / Währung ?

Textbox mit Zahlenformat / Währung ?
08.03.2008 15:38:50
a_ke
Hallo,
ich versuche mich gerade an dem leidigen Problem mit Zahlen / Währungsformat in einer Userform Textbox
und bin trotz umfangreicher Recherche auf kein richtiges Ergenis gestossen. Auch in zahlreichen
Beispielarbeitsmappen habe ich keine entsprechend formatierte Textbox gefunden. Ich habe deshalb
zum Thema eine kleine Beispielarbeitsmappe erstellt, um das Problem vielleicht gleich darin
anschaulich zu lösen. Ich kann mir vorstellen, dass mehrere Nutzer des Forums irgendwann damit
konfrontiert sind.

Die Datei https://www.herber.de/bbs/user/50569.xls wurde aus Datenschutzgründen gelöscht


Die Userform enthält 3 Textboxes. Hier sollen jeweils nur Zahlen im Format 1.000,00 oder 1.000,00 €
eingegeben werden, wobei mir auch ohne die Währung schon sehr geholfen wäre.
Anschliessend sollen die Werte in das Blatt Daten übernommen werden.
Ich habe dies mit der ControlSource Eigenschaft der Textbox verknüpft. Ob dies jedoch mit Zahlenwerten
günstig ist, weiß ich nicht.
Im Blatt Daten werden die Eingaben momentan nur als Text erkannt und deshalb nicht berechnet.
Die Gesamtsumme soll dann über die Caption Eigenschaft nach jeder Eingabe aktualisiert werden.
Außerdem müssen die Werte beim Öffnen der Userform eingelesen werden.
Ich hoffe, dass ich mein Anliegen gut genug beschrieben habe.
Andre

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Textbox mit Zahlenformat / Währung ?
08.03.2008 16:32:00
a_ke
Hallo Josef,
vielen Dank für die erstellte Mappe. Das war ja doch aufwendiger, als ich gedacht hätte.
Ich habe gerade getestet und nur noch eine kleine Fehlermöglichkeit entdeckt, die sich vielleicht
noch abstellen läßt.
Beim Start der Userform steht der Cursor in der 1. Textbox hinter dem €-Zeichen. Wenn dann
ein Wert eingegeben wird, erhält man einen Fehler.
Ansonsten sind die Fehleingaben ja praktisch ausgeschlossen, da nur Zahlenwerte akzeptiert werden.
Vielleicht kann Hans die Mappe dann in die Beispielarbeitsmappen aufnehmen.
Andre

Anzeige
AW: Textbox mit Zahlenformat / Währung ?
08.03.2008 16:44:00
Josef
Hallo Andre,
ändere diese Zeilen, dann lässt sich dieser Fehler auch abfangen.
Private Sub TB_AU(TBox As MSForms.TextBox)
If TBox = "" Then TBox = 0
If InStr(1, TBox, "€") > 0 Then TBox = Trim$(Left(TBox, InStr(1, TBox, "€") - 1))
Worksheets("Daten").Range(TBox.Tag).Value = CDbl(Trim$(Replace(TBox.Value, ".", "")))
Summe = Sheets("Daten").Range(Summe.Tag).Text
TBox = Worksheets("Daten").Range(TBox.Tag).Text
End Sub


Gruß Sepp



Anzeige
AW: Textbox mit Zahlenformat / Währung ?
08.03.2008 17:16:06
Erich
Hallo Andre,
ein kleiner Einbau in UserForm_Activate markiert den Inhalt der TB1 beim Aktivieren.
Schau mal in den Code der Userform. Da steht unten auch noch eine Bemerkung.
Dabei habe ich einen Beitrag von Sepp von vor 4 Jahren verwendet.
https://www.herber.de/bbs/user/50571.xls
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
Vielen Dank an Josef und Erich, es funktioniert !
08.03.2008 17:49:26
a_ke
Jetzt läuft alles und ich kann weiterarbeiten.
Andre
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Textbox mit Zahlenformat in Excel Userforms


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne Excel und erstelle eine neue Userform. Füge drei Textboxen hinzu, in die die Zahlen eingegeben werden sollen.

  2. Eingabeformat festlegen: Um sicherzustellen, dass nur das Zahlenformat 1.000,00 oder 1.000,00 € akzeptiert wird, kannst du den folgenden VBA-Code in das Userform-Modul einfügen:

    Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
       If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> 8 And KeyAscii <> 46 And KeyAscii <> 44 Then
           KeyAscii = 0
       End If
    End Sub
  3. ControlSource Eigenschaft nutzen: Setze die ControlSource-Eigenschaft jeder Textbox auf die entsprechende Zelle in deinem Datenblatt. Dies sorgt dafür, dass die eingegebenen Werte automatisch dorthin übertragen werden.

  4. Wertkonvertierung: Verwende den folgenden Code, um sicherzustellen, dass die Werte beim Übertragen in die Zelle als Zahlen erkannt werden:

    Worksheets("Daten").Range("A1").Value = CDbl(Replace(TextBox1.Value, ".", ""))
  5. Aktualisierung der Gesamtsumme: Füge einen Code hinzu, der die Gesamtsumme nach jeder Eingabe aktualisiert:

    Private Sub TextBox1_Change()
       LabelSumme.Caption = Application.WorksheetFunction.Sum(Worksheets("Daten").Range("A1:A3"))
    End Sub
  6. Cursorposition beim Start festlegen: Um den Cursor am Anfang der Textbox zu platzieren, kann der folgende Code in die UserForm_Activate-Sub eingefügt werden:

    Private Sub UserForm_Activate()
       TextBox1.SetFocus
       TextBox1.SelStart = 0
    End Sub

Häufige Fehler und Lösungen

  • Fehler beim Eingeben von Werten: Wenn der Cursor hinter dem €-Zeichen steht und ein Wert eingegeben wird, könnte ein Fehler auftreten. Achte darauf, den oben genannten Code zur Fehlerbehandlung in deine Userform einzufügen.

  • Werte werden als Text erkannt: Stelle sicher, dass du die CDbl-Funktion verwendest, um die Eingaben in Zahlen zu konvertieren, bevor sie in das Datenblatt eingefügt werden.


Alternative Methoden

Wenn du keine Userform verwenden möchtest, kannst du auch eine einfache Excel-Tabelle mit Datenvalidierung erstellen, um sicherzustellen, dass nur Zahlen eingegeben werden. Du kannst dafür die Datenüberprüfung in Excel nutzen:

  1. Wähle die Zellen aus, in die Zahlen eingegeben werden sollen.
  2. Gehe zu Daten > Datenüberprüfung.
  3. Wähle unter „Zulassen“ die Option „Dezimal“ und lege die entsprechenden Regeln fest.

Praktische Beispiele

Hier ist ein einfaches Beispiel, um die Verwendung von Textboxen in einer Userform zu demonstrieren:

  1. Erstelle eine Userform mit drei Textboxen.
  2. Füge den oben genannten VBA-Code zur Eingabevalidierung und zur Aktualisierung der Gesamtsumme hinzu.
  3. Teste die Userform, indem du verschiedene Zahlen eingibst und beobachte die Ergebnisse in der Excel-Tabelle.

Tipps für Profis

  • Benutzerdefinierte Formatierung: Du kannst auch benutzerdefinierte Formatierungen in Excel verwenden, um sicherzustellen, dass die Zahlen im gewünschten Format angezeigt werden.

  • Fehlerprotokollierung: Implementiere eine Fehlerprotokollierung, um Probleme beim Dateninput schnell zu identifizieren und zu beheben.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Verwende die KeyPress-Ereignisprozedur der Textbox, um Eingaben zu filtern und nur numerische Werte zuzulassen.

2. Was machen, wenn die Werte als Text gespeichert werden?
Nutze die CDbl-Funktion, um sicherzustellen, dass die Werte beim Übertragen in das Datenblatt als Zahlen erkannt werden.

3. Wie kann ich das Layout der Userform anpassen?
Du kannst die Eigenschaften der Userform und der Textboxen im Eigenschaftenfenster von Visual Basic anpassen, um das Layout nach deinen Wünschen zu gestalten.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige