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

Userform Textfeld als Zahl formatieren

Forumthread: Userform Textfeld als Zahl formatieren

Userform Textfeld als Zahl formatieren
04.12.2002 11:34:45
Chris
Hallo,

ich habe ein Excel Programm das die Daten von einer Userform in Excel schreibt. Auf der Userform sollen die Eingabewerte als formatierte Zahl angezeigt werden (die Eingabe erfolgt über die Userform). Die Ausgabe soll einen Punkt als Tausender-Trennzeichen enthalten (Bsp.: 125.00,74 €). Leider habe ich keine Ahnung wie man das realisiert. Folgendes habe ich versucht:

Private Sub TextBox333_Change()
TextBox333.Text = Format(TextBox333.Text, "#,##0.00")

End Sub
Leider ohne Erfolg. Was mache ich falsch???

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Userform Textfeld als Zahl formatieren
04.12.2002 11:52:04
Michael Scheffler
Hallo,

wo ist denn hier die Tausend?

>125.00,74 €).

Ansonsten: im Change-Ereignis der Textbox schauen, wann ein Komma kommt und dann von dem aus immer "3" zurückzählen und dort einen bzw. mehrere Punkte eintragen. Aber wozu der Aufwand, bevor Du die Zahl nicht wenigstens bis zum Komma eingegeben hast, rührt sich nichts. Und das ist bei Eingabe in eine Zelle genauso.

Gruß

Micha

Anzeige
Re: Userform Textfeld als Zahl formatieren
04.12.2002 12:09:01
Chris
Zunächst vielen Dank für die schnelle Antwort.
Sorry, ich meinte 125.000,74 ich war wohl zu schnell. :-)
Ich muss zugeben das ist alles Neuland für mich. Die Zahl soll auch erst mit Verlassen des Feldes formatiert werden. Wenn ich die Zahl in die Userform eingebe auch beim Change-Ereignis, wird die Zahl auf der Userform als 12500074 ausgegeben.
Anzeige
Re: Userform Textfeld als Zahl formatieren
04.12.2002 12:38:54
Ralf Sögel
Das Change- Ereignis ist nicht so gut, weil es bei jeder Änderung erneut ausgelöst wird, machs so:
Private Sub TextBox4_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsNumeric(TextBox4) Then
TextBox4 = ""
End If
TextBox4 = Format(TextBox4, "#,##0.00")
End Sub
Re: Userform Textfeld als Zahl formatieren
04.12.2002 12:55:23
Michael Scheffler
Hallo,

was sol am Change nicht gut sein? Wenn Du auf falsch einegebene Zeichen absuchst, machst Du das auch im Change. Deine Lösung braucht man ja dann auch nicht mehr, weil er die Zahl in eine entsprechend formatierte Zelle schreibt.

Gruß

Micha

Anzeige
Re: Userform Textfeld als Zahl formatieren
04.12.2002 13:14:51
Chris
Hallo,

ich kann leider nicht beurteilen, welches Ereignis besser ist, aber mit der Beschreibung von Ralf funktioniert es, es gibt dabei allerdings noch ein kleines Problem. Das Textfeld wird komischerweise erst dann formatiert, wenn ich es mit Tab verlasse, wieder zurückkehre und es erneut verlasse. Woran kann das liegen?

Auf jeden Fall schon einmal vielen Dank Euch beiden!

Anzeige
Re: Userform Textfeld als Zahl formatieren
04.12.2002 13:36:12
Ralf Sögel
das liegt daran, dass das Exit- Ereignis verwendet wird(verlassen)!
Re: Userform Textfeld als Zahl formatieren
04.12.2002 13:39:23
Ralf Sögel
Klar, es gibt mehrere Möglichkeiten. Die Eingabe soll doch wohl formatiert in der Textbox stehen.
Re: Userform Textfeld als Zahl formatieren
04.12.2002 13:46:57
Chris
Die Zahl wird aber doch erst beim zweiten verlassen formatiert, aber komischerweise nur wenn vor dem Textfeld ein Bezeichnungsfeld steht. Bei einem Kombinationsfeld vorab wird die Zahl dann bereits nach dem ersten Verlassen richtig formatiert.
Anzeige
Re: Userform Textfeld als Zahl formatieren
04.12.2002 15:52:14
Ralf Sögel
Sorry, kann ich nicht nachvollziehen.
;

Forumthreads zu verwandten Themen

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

Userform Textfeld als Zahl formatieren


Schritt-für-Schritt-Anleitung

Um ein Textfeld in einer Userform so zu formatieren, dass die Eingabe als Zahl angezeigt wird, kannst du die folgenden Schritte befolgen:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge eine Userform hinzu, falls noch nicht geschehen.

  3. Platziere ein TextBox-Steuerelement auf der Userform.

  4. Doppelklicke auf das TextBox, um den Code-Editor für das TextBox-Steuerelement zu öffnen.

  5. Verwende den folgenden Code, um das TextBox-Format festzulegen:

    Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If Not IsNumeric(TextBox1.Text) Then
           TextBox1.Text = ""
       Else
           TextBox1.Text = Format(TextBox1.Text, "#,##0.00")
       End If
    End Sub
  6. Schließe den Code-Editor und teste die Userform.

Mit diesem Code wird das TextBox-Format angewendet, wenn du das Feld verlässt.


Häufige Fehler und Lösungen

  • Problem: Das TextBox-Format wird nicht korrekt angewendet.

    • Lösung: Stelle sicher, dass das Exit-Ereignis verwendet wird, um die Eingabe zu formatieren. Vermeide das Change-Ereignis, da es bei jeder Eingabe ausgelöst wird und das Format möglicherweise nicht korrekt bleibt.
  • Problem: Die Zahl wird erst nach zweimaligem Verlassen des Feldes formatiert.

    • Lösung: Überprüfe, ob vor dem TextBox ein Bezeichnungsfeld oder ein anderes Steuerelement vorhanden ist. Manchmal beeinflusst die Reihenfolge der Steuerelemente das Verhalten.

Alternative Methoden

Eine andere Methode, um das TextBox-Format zu steuern, besteht darin, das KeyPress-Ereignis zu verwenden. Dadurch kannst du die Eingabe während der Eingabe formatieren:

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnBoolean)
    If Not (KeyAscii >= 48 And KeyAscii <= 57) And KeyAscii <> vbBack And KeyAscii <> 44 And KeyAscii <> 46 Then
        KeyAscii = 0 ' Nur Zahlen und Komma/Punkt erlauben
    End If
End Sub

Mit dieser Methode kannst du sicherstellen, dass nur gültige Zeichen in das TextBox eingegeben werden.


Praktische Beispiele

Ein praktisches Beispiel könnte sein, dass du eine Userform erstellst, um Verkaufszahlen zu erfassen. Das TextBox-Feld könnte wie folgt aussehen:

  1. Füge ein TextBox-Feld hinzu, benenne es in txtSales um.
  2. Verwende den folgenden Code:

    Private Sub txtSales_Exit(ByVal Cancel As MSForms.ReturnBoolean)
       If Not IsNumeric(txtSales.Text) Then
           MsgBox "Bitte eine gültige Zahl eingeben."
           Cancel = True ' Verhindert das Verlassen des Feldes
       Else
           txtSales.Text = Format(txtSales.Text, "#,##0.00")
       End If
    End Sub

Dieses Beispiel zeigt, wie du sicherstellen kannst, dass nur gültige Verkaufszahlen eingegeben werden.


Tipps für Profis

  • Verwende benutzerdefinierte Formate: Du kannst benutzerdefinierte Formate in der Format-Funktion verwenden, um spezifische Anforderungen zu erfüllen.
  • Eingabemasken: Überlege, Eingabemasken zu verwenden, um die Benutzerführung zu verbessern und sicherzustellen, dass die Eingaben den gewünschten Kriterien entsprechen.
  • Fehlermeldungen: Implementiere hilfreiche Fehlermeldungen, um dem Benutzer zu helfen, die richtigen Daten einzugeben.

FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass nur Zahlen eingegeben werden?
Verwende das KeyPress-Ereignis, um die Eingaben zu filtern und nur Zahlen zuzulassen.

2. Warum wird das Format erst beim zweiten Verlassen des Textfeldes angewendet?
Das liegt daran, dass das Exit-Ereignis verwendet wird, das erst beim Verlassen des Feldes ausgelöst wird. Achte darauf, dass die Benutzeroberfläche so gestaltet ist, dass sie die Benutzerführung unterstützt.

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