Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
844to848
844to848
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Formatierung der Textbox und Label in Userform

Formatierung der Textbox und Label in Userform
20.02.2007 10:06:08
Sophie
Hallo lieber Forum,
stoße an die Grenzen meiner VBA-Kenntnisse.
Ich habe eine Userform, in der 3 Positionen (Zahlen über 1.000) eingegeben werden und in einem Label drunter die Summe dieser drei Positionen dargestellt wird.
Ich würde gerne die Eingaben in den Textboxen und die Darstellung des Labels folgendermaßen formatieren:
wie in Excel - Punkt als Tausender Trennzeichen und 2 Nachkommastellen zulassen (sowohl in den Textboxen als auch im Label).
Weiß jemand, was für ein Befehl man dabei benutzt und wie man das schreibt?
Ich bin euch sehr dankbar.
Liebe Grüße
Sophie

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung der Textbox und Label in Userform
20.02.2007 10:11:00
IngGi
Hallo Sophie,
Userform1.Textbox1 = Format(Range("A1"), "#.##0,00")
fügt den Wert der Zelle A1 als formatierten Text in die Textbox ein. Eine Zahlenformatierung im eigentlichen Sinn ist in einer Textbox nicht möglich. Textboxen enthalten - wie der Name schon sagt - Text, keine Zahlen.
Gruß Ingolf
AW: Formatierung der Textbox und Label in Userform
20.02.2007 10:13:00
Erich
Hallo Sophie,
im Prinzip etwa so:
TextBox1 = Format(TextBox1, "#,###.00")
oder ausführlicher
TextBox1 = Format(CDbl(TextBox1), "#,###.00")
Label1 = Format(CDbl(TextBox1)+CDbl(TextBox2), "#,###.00")
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Formatierung der Textbox und Label in Userform
20.02.2007 11:41:00
Sophie
Hallo Erich!
Vielen Dank für deine Nachricht!
Den vorgeschlagenen Befehl habe ich schon vorher ausprobiert, nur komme ich mit dem nicht ganz klar...
Wenn ich mehr als zwei Nachkommastellen eingebe, switscht die Eingabe im Text plötzlich auf Tausende (Komma für die Nachkommastelle wechselt zu Punkt als Tausender Trennzeichen). Irgendwie ist das sehr kryptisch. Zur Sicherheit schicke ich dir meinen Code...

Private Sub TextBox40_Change()
With Worksheets("Eingabe Zertifikaten")
If TextBox40.Value = "" Then .Range("b1").Value = 0 Else .Range("b1").Value = Round(TextBox40.Value, 2)
'Hier würde ich gerne Zeile einfügen, die den Format meiner Textbox bestimmt...
Label47.Caption = .Range("b4").Value
Label47 = Format(CDbl(Label47), "#,###.00")
End With
End Sub

Herzlichen Dank,
Sophie
Anzeige
AW: Formatierung der Textbox und Label in Userform
20.02.2007 12:09:00
Erich
Hallo Sophie,
bei mir gibts auch mit mehr Nachkommastellen kein Problem.
Probier mal
Private Sub TextBox40_Change()
With Worksheets("Eingabe Zertifikaten")
If TextBox40 = "" Then
.Range("b1") = 0
Else
.Range("b1") = Round(CDbl(TextBox40), 2)
TextBox40 = Format(CDbl(TextBox40), "#,###.0000")
End If
TextBox40 = Format(CDbl(TextBox40), "#,###.0000")
Label47 = Format(.Range("b4"), "#,###.000")
End With
End Sub
Private Sub TextBox40_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Worksheets("Eingabe Zertifikaten")
If TextBox40 = "" Then
.Range("b1") = 0
Else
.Range("b1") = Round(CDbl(TextBox40), 2)
TextBox40 = Format(CDbl(TextBox40), "#,###.0000")
End If
Label47 = Format(.Range("b4"), "#,###.000")
End With
End Sub
Das Change-Ereignis würde ich hier nicht auswerten - die Formatiererei der Textbox stört bei der Eingabe sehr.
Besser wäre da wohl das Exit-Ereignis.
Value und Caption habe ich als Default-Eigenschaften weggelassen, sollte man aber vielleicht hinschreiben...
Ist eigentlich sicher, dass b4 eine Zahl enthält?
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Formatierung der Textbox und Label in Userform
20.02.2007 14:41:00
Sophie
es funktioniert!!! nur geringfühgig angepasst sieht Code jetzt so aus:

Private Sub TextBox40_Change()
With Worksheets("Eingabe Zertifikaten")
If TextBox40 = "" Then
.Range("b1") = 0
Else
.Range("b1") = Round(CDbl(TextBox40), 2)
End If
Label47 = Format(.Range("b4"), "#,##.00")
End With
End Sub


Private Sub TextBox40_Exit(ByVal Cancel As MSForms.ReturnBoolean)
With Worksheets("Eingabe Zertifikaten")
If TextBox40 = "" Then
.Range("b1") = 0
Else
.Range("b1") = Round(CDbl(TextBox40), 2)
TextBox40 = Format(CDbl(TextBox40), "#,##.00")
End If
Label47 = Format(.Range("b4"), "#,##.00")
End With
End Sub

Und wenn ich bei UserForm_Initialize die Zeilen mit Formatierung reinschreibe, dann erscheinen die Zahlen von Anfang an im richtigen Format!
VIELEN HERZLICHEN DANK ! ! !
Sophie ;-)
Anzeige
Danke für Rückmeldung - Gerne! (oT)
20.02.2007 16:05:25
Erich
AW: Formatierung der Textbox und Label in Userform
20.02.2007 12:14:00
IngGi
Hallo Sophie,

Private Sub TextBox40_AfterUpdate()
   With Worksheets("Eingabe Zertifikaten")
      If TextBox40.Value = "" Then
         .Range("b1").Value = 0
      Else
         .Range("b1").Value = Round(TextBox40.Value, 2)
      End If
      TextBox40 = Format(TextBox40, "#.##0,00")
      Label47.Caption = .Range("b4").Value
      Label47 = Format(CDbl(Label47), "#,###.00")
   End With
End Sub

An Stelle des Change-Ereignisses habe ich das AfterUpdate-Ereignis genommen. Das Change-Ereignis würde bei der Eingabe jeder Ziffer anspringen, was unnötig ist. Das AfterUpdate-Ereignis dagegen springt erst an, wenn du die Textbox nach der Eingabe des kompletten Wertes wieder verlässt.
Gruß Ingolf
Anzeige

54 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige