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

Formatierung von Zahlen in Textfeldern

Forumthread: Formatierung von Zahlen in Textfeldern

Formatierung von Zahlen in Textfeldern
15.01.2004 10:16:48
Lars
Hallo,
ich habe folgendes Problem:
Ich habe eine UserForm mit 2 Textfelder, in denen Zahlen dargestellt werden sollen. Diese Zahlen sollen mit Tausenderpunkt angezeigt werden. Beide Felder haben eine ControlSource (sagen wir mal A1 und A2), welche das Formatieren der Werte anscheinend verhindert.
Der Quelltext:

Private Sub TextBox1_AfterUpdate()
TextBox1 = Format(TextBox1, "#,##0.00")
End Sub


Private Sub TextBox2_AfterUpdate()
TextBox2 = Format(TextBox2, "#,##0.00")
End Sub


Private Sub UserForm_Activate()
Formatieren
End Sub



Private Sub Formatieren()
TextBox1 = Format(TextBox1, "#,##0.00")
TextBox2 = Format(TextBox2, "#,##0.00")
End Sub

Wenn ich die ControlSource der Felder entferne funktioniert es wunderbar.
Wenn ich nur ein TextFeld habe, dann funktioniert es wunderbar. (auch mit ControlSource)
Die Maske ist natürlich nur eine Demo und soll nur das Problem schildern. Ich will diesen Formatierungsprozeß in einer Funktion zusammenfassen, die beim Aktivieren der UserForm gerufen wird. Daher hätte ich gern das Grundproblem geklärt, warum die Werte nicht im angegebenen Format dargestellt werden, wenn man zwei Textfelder in einer Funktion formatiert.
Danke
Lars
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung von Zahlen in Textfeldern
15.01.2004 14:26:21
Hans W. Herber
Hallo Lars,
das funktioniert nicht. Grundsätzlich sind Textfelder nicht zu formatieren, sie haben immer nur das Textformat. Was formatiert werden kann, sind die Inhalte, was allerdings nicht im Widerspruch zum Zellinhalt stehen darf. Wenn also ein TextBox-Inhalt mit Tausender-Trennzeichen formatiert wird, versucht Excel den neuen Wert an die Zelle zu übergeben. Da dies nicht funktioniert, wird ausgestiegen und der Versuch bei der zweiten Zelle nicht mehr unternommen.
Es empfiehlt sich die goldene Regel, in Tabellenblatt-TextBoxes mit LinkdedCell und in UserForm-TextBoxes mit ungebundenen Steuerelementen zu arbeiten.
In diesem Fall einlesen mit:
TextBox1.Text = Range("A1").Text (wenn die Formatierung übernommen werden soll)
oder mit:
TextBox1.Text = Format(Range("A1").Value, "#,##0.00") (wenn die Formatierung nicht übernommen werden soll)
Gruss hans
Anzeige
Ok, Danke
15.01.2004 16:58:03
Lars
Hallo Hans,
danke, das war auch meine Vermutung. Dann werd ich wohl weiterhin ohne ControlSource in den Textfeldern arbeiten. Damit die User dann die Zahlen besser lesen können. :) Was tut man nicht alles ...
Gruß
Lars
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Formatierung von Zahlen in Excel-Textfeldern


Schritt-für-Schritt-Anleitung

  1. Erstelle eine UserForm in Excel, die zwei Textfelder enthält.

  2. Setze die ControlSource der Textfelder auf die entsprechenden Zellen (z.B. A1 und A2).

  3. Füge VBA-Code hinzu, um die Formatierung der Zahlen in den Textfeldern zu ermöglichen. Beispiel:

    Private Sub TextBox1_AfterUpdate()
       TextBox1 = Format(TextBox1, "#,##0.00")
    End Sub
    
    Private Sub TextBox2_AfterUpdate()
       TextBox2 = Format(TextBox2, "#,##0.00")
    End Sub
    
    Private Sub UserForm_Activate()
       Formatieren
    End Sub
    
    Private Sub Formatieren()
       TextBox1 = Format(TextBox1, "#,##0.00")
       TextBox2 = Format(TextBox2, "#,##0.00")
    End Sub
  4. Teste die UserForm, um sicherzustellen, dass die Zahlen im gewünschten Format angezeigt werden.


Häufige Fehler und Lösungen

  • Problem: Die Zahlen werden nicht korrekt formatiert.

    • Lösung: Überprüfe, ob die ControlSource gesetzt ist. Bei Textfeldern mit ControlSource kann Excel die formatierte Zahl nicht übernehmen. Arbeite stattdessen mit ungebundenen Steuerelementen.
  • Problem: Textfelder zeigen nur den unformatierten Wert an.

    • Lösung: Verwende TextBox1.Text = Format(Range("A1").Value, "#,##0.00"), um die Formatierung anzuwenden, ohne dass die ControlSource die Anzeige beeinflusst.

Alternative Methoden

Wenn die Verwendung von ControlSource nicht funktioniert, kannst du die Zahlen auch direkt in den Textfeldern formatieren, indem du die Werte manuell einliest und formatierst. Alternativ kannst du die bedingte Formatierung in Excel verwenden, um die Darstellung von Zahlen in einem Zellenbereich zu steuern.


Praktische Beispiele

Hier sind einige Beispiele, wie du die Formatierung in Excel-Textfeldern umsetzen kannst:

  1. Zahlen mit Tausendertrennzeichen:

    TextBox1.Text = Format(Range("A1").Value, "#,##0.00")
  2. Aufzählung in Excel-Textfeldern: Um eine Aufzählung in einem Textfeld darzustellen, könntest du die Inhalte wie folgt formatieren:

    TextBox1.Text = "1. " & Format(Range("A1").Value, "#,##0.00") & vbCrLf & _
                   "2. " & Format(Range("A2").Value, "#,##0.00")

Tipps für Profis

  • Nutze die Excel-Darstellung von Zahlen gezielt, um die Lesbarkeit zu verbessern.
  • Experimentiere mit verschiedenen Formatierungsoptionen, um die Benutzeroberfläche ansprechend zu gestalten.
  • Denke daran, dass die Bearbeitung von Textfeldern in einer UserForm immer auch die Logik hinter den Steuerelementen berücksichtigen sollte.

FAQ: Häufige Fragen

1. Warum funktioniert die Formatierung nicht mit ControlSource?
Textfelder in Excel sind grundsätzlich im Textformat. Wenn du eine ControlSource verwendest, versucht Excel, den formatierten Wert an die Zelle zu übergeben, was zu Problemen führen kann.

2. Wie kann ich Textfelder formatieren, ohne ControlSource zu verwenden?
Verwende ungebundene Steuerelemente und formatiere die Inhalte manuell in den Textfeldern. So kannst du die gewünschte Darstellung von Zahlen in Excel erreichen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige