Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
944to948
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
944to948
944to948
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

TextBox formatieren

TextBox formatieren
24.01.2008 12:23:40
Tobias
Hallo,
Ich habe ein Makro zum eingeben von Daten.
Wie kann ich jetzt festlegen, dass nur bestimmte Zeichen in der TextBox eingegeben werden dürfen.
Die 1. Box ist zu Eingabe vom Datum: Es sollen nur Zahlen und der „.“ Zugelassen werden.
Bei der 2. Box handelt es sich um die Eingabe eines Betrages.
Hier sollen nur Zahlen und „ , “(Komma) und das „-„(Minus) erlaubt sein.
Gleichzeitig soll der Betrag auf zwei stellen gerundet werden und das „€“ in der TextBox dargestellt werden.
Ist jetzt ein bisschen viel auf einmal.
Aber hängt ja alles mit der Formatierung irgendwie zusammen.
Hoffe mir kann jemand weiterhelfen.
Danke schon mal.
Gruß Tobias

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

Betreff
Datum
Anwender
Anzeige
AW: TextBox formatieren
24.01.2008 12:49:33
Peter
Hallo Tobias,
hier ein Muster für die Datumseingabe
'
' das nachfolgende Makro soll für die Datumseingabe nur Ziffern und
' maximal zwei Punkte - als Trennzeichen - zulassen.
'

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) = 0 Then
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
ElseIf InStr(1, TextBox1, ".") = 0 Or _
InStr(4, TextBox1, ".") = 0 Then
Select Case KeyAscii
Case 46, 48 To 57
Case Else
KeyAscii = 0
End Select
Else
Select Case KeyAscii
Case 48 To 57
Case Else
KeyAscii = 0
End Select
End If
End Sub


Gruß Peter

Anzeige
AW: TextBox formatieren
24.01.2008 12:52:00
Peter
Hallo Tobias,
hier eine TextBox-Eingabe für einen Betrag

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If Len(TextBox1) = 0 Then    ' ist die TextBox noch leer ?
Select Case KeyAscii
Case 44, 45, 48 To 57  ' nur Minus, Komma, Null - Neun
Case Else
KeyAscii = 0
End Select
ElseIf InStr(1, TextBox1, ",") = 0 Then ' noch kein Komma gesetzt ?
Select Case KeyAscii
Case 44, 48 To 57     ' nur Komma, Null - Neun
Case Else
KeyAscii = 0
End Select
Else                ' sind es noch weniger als 2 Nachkommastellen ?
If Len(TextBox1.Value) - InStr(TextBox1.Value, ",") 


Gruß Peter

Anzeige
AW: TextBox formatieren
24.01.2008 12:59:46
Tobias
hallo Peter,
gibt es da ein Liste mit den Cases für die entsprechenden Zeichen?
Also Case 48-57 wird dann 1-9 sein?
Wo gibt es die Liste?
Dann noch ne Frage, wie kann ich den Text in der TextBox "rechtsbündig" formatieren?

AW: TextBox formatieren
24.01.2008 13:26:59
Rudi
Hallo,
1. such mal in der Hilfe nach Zeichensatz.
2. Eigenschaft TextAlign der Textbox.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: TextBox formatieren
25.01.2008 07:50:00
Tobias
Hallo Peter,
Das mit der Eingabe für den Betrag und dem Datum funktioniert super!!
Echt Klasse wenn man sich auskennt!!!
Nur noch eine kleine Frage zum eingeben vom Betrag.
Wenn schon ein Wert in der TextBox steht, und ich in mit der Maus markiere und dann überschreiben will,
kann ich nur mit einem Komma oder einer Zahl beginnen.
Wie mach ich es, dass ich auch mit einem Minus zeichen beginnen kann?
Und dann wollt ich noch wissen, ob man die TextBox auch so formatieren kann, dass Sie dann automatisch auf zwei stellen nach dem Komma rundet
und bei einer ganzen Zahl das Komma und zwei Nullen automatisch ergänzt?
Geht das überhaupt?
Gruß Tobias

Anzeige
AW: TextBox formatieren
25.01.2008 17:09:00
Peter
Hallo Tobias,
sieh dir einmal das Zusammenspiel dieser Makros an.
Das UserForm(ular) brauch eine TextBox und zwei Buttons


Option Explicit
Private Sub CommandButton1_Click()
   Worksheets("Tabelle3").Range("B6").Value = Me.TextBox1.Value
End Sub
Private Sub CommandButton2_Click()
   With Me.TextBox1
      .Value = ""
      .SetFocus
   End With
End Sub
Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   Me.TextBox1.Value = Format(Me.TextBox1.Value, "#,##0.00")
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
   If Len(TextBox1) = 0 Then    ' ist die TextBox noch leer ?
      Select Case KeyAscii
         Case 44, 45, 48 To 57  ' nur Minus, Komma, Null - Neun
         Case Else
            KeyAscii = 0
      End Select
   ElseIf InStr(1, TextBox1, ",") = 0 Then ' noch kein Komma gesetzt ?
      Select Case KeyAscii
         Case 44, 48 To 57     ' nur Komma, Null - Neun
         Case Else
            KeyAscii = 0
      End Select
   Else                ' sind es noch weniger als 2 Nachkommastellen ?
      If Len(TextBox1.Value) - InStr(TextBox1.Value, ",") < 2 Then
         Select Case KeyAscii
            Case 48 To 57      ' nur Null - Neun
            Case Else
               KeyAscii = 0
         End Select
       Else
         KeyAscii = 0
      End If
   End If
End Sub


Gruß Peter

Anzeige
AW: TextBox formatieren
25.01.2008 17:12:00
Peter
Hallo Tobias,
ein kleiner Nachtrag: der erste Button übernimmt den eingegebenen Wert aus der TextBox nach Tabelle3 Range("B6")
der zweite Button löscht die TextBox und setzt den Focus wieder drauf.
Gruß Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige