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

Format

Forumthread: Format

Format
André
Hallo zusammen,
wie kann ich ein Textfeld in einem Formular Formatieren mit € und nur 2 Dezimalstellen?
Gruß André
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
TextBox1 = Format(TextBox1, "#,##0.00 €") oT
09.09.2009 15:58:43
Matthias
AW: TextBox1 = Format(TextBox1, "#,##0.00 €") oT
09.09.2009 16:00:15
André
Danke, und wo schreibe ich das rein?
Gruß André
das kommt drauf an wann Du es brauchst
09.09.2009 16:07:14
Matthias
Hallo
beispielsweise beim Verlassen der Textbox:
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox1 = Format(TextBox1, "#,##0.00 €")
End Sub
Du kannst den Code auch einem Button zuweisen der auf dem Formular liegt. z.B. so
Private Sub CommandButton1_Click()
TextBox1 = Format(TextBox1, "#,##0.00 €")
End Sub
Es kommt also drauf an wann Du formatieren willst
Gruß Matthias
Anzeige
AW: das kommt drauf an wann Du es brauchst
09.09.2009 16:11:24
André
vielen Dank, funktioniert super.
Gruß André
aber aufgepasst ...
09.09.2009 16:19:59
Matthias
Hallo
... wenn Du ein Datum in die Textbox schreibst wandelt der Code das Datum um
besser also diese Abfrage
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If Not IsDate(TextBox1.Text) Then TextBox1 = Format(TextBox1, "#,##0.00 €")
End Sub
Bei Text wird die Formatierung ignoriert, aber ein Datum ist auch eine Zahl !
Gruß Matthias
Anzeige
AW: aber aufgepasst ...
09.09.2009 16:27:00
André
Danke Matthias, aber Datum wird nicht geschrieben, noch eine kleine Frage wo ist die Funktion bei Excel2007 um Objekte im Formular mit der Tastatur präzise zu verschieben .
keine Ahnung was Du meinst ...
09.09.2009 17:06:32
Matthias
Hallo
Du kannst doch in den Eigenschaften des Objektes die genauen Positionen festlegen
.Top
.Left
.Width
.Height
Gruß Matthias
Anzeige
AW: Format
09.09.2009 16:02:54
JogyB
Hi.
Versuch es mal so:

' Erzeugt die Anzeige mit €
Private Sub TextBox1_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
' Wenn nicht numerisch, dann gehts nicht weiter
If Not IsNumeric(TextBox1.Value) And TextBox1.Value  "" Then
Cancel = True
ElseIf TextBox1.Value  "" Then
Application.EnableEvents = False
TextBox1.Value = Format(TextBox1.Value, "#0.00") & " €"
Application.EnableEvents = False
End If
End Sub
' Verhindert die Doppeleingabe von Kommas
Private Sub TextBox1_Change()
Static lastValue As String
Dim cursPos As Long
If InStr(TextBox1.Value, ",")  InStrRev(TextBox1.Value, ",") Then
' bei zweitem Komma wird die alte Eingabe wiederhergestellt
' die Cursor-Position wird bei Eingabe von Einzelzeichen ebenfalls
' korrekt wiederhergestellt, bei Copy&Paste von mehreren Zeichen nicht
cursPos = TextBox1.SelStart
TextBox1.Value = lastValue
TextBox1.SelStart = Application.Max(cursPos - 1, 0)
Else
lastValue = TextBox1.Value
End If
End Sub
' Löscht das €-Zeichen bei der Eingabe
Private Sub TextBox1_Enter()
' Wenn was drinsteht, dann ist auch das Eurozeichen drin
If TextBox1.Value  "" Then
Application.EnableEvents = False
TextBox1.Value = Left(TextBox1.Value, Len(TextBox1.Value) - 2)
Application.EnableEvents = True
End If
End Sub
' Läßt nur Zahlen und das Komma als Eingabe zu
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If (KeyAscii  57) And KeyAscii  44 Then
KeyAscii = 0
End If
End Sub

Den Namen der Textbox mußt Du ggf. anpassen.
Gruss, Jogy
Anzeige
;

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