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

Textbox Zahlenformat

Textbox Zahlenformat
11.11.2003 16:02:28
Hartmut_M
Hallo, in einem Userform soll in einem Textfeld eine Zahl in diesem Format eingegeben werden: "03.1234567.8" Ist es möglich, das Eingabefeld so zu formatieren, dass die Punkte schon vorgegeben sind? Und wenn der Anwender die Zahl 0345678 eingibt sollte als Ergebnis erscheinen 03.0004567.8 Also die Punkte sollten automatisch erscheinen und die Zahl zwischen den Punkten 7stellig sein mir führenden Nullen. Vielen Dank im Voraus für jeden Tip.
Gruß Hartmut

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox Zahlenformat
11.11.2003 19:25:39
Nepumuk
Hallo Hartmut,
so gehts:


Private Sub TextBox1_Change()
If Len(TextBox1) = 2 Or Len(TextBox1) = 10 Then TextBox1 = TextBox1 & "."
End Sub


Gruß
Nepumuk
Teillösung
11.11.2003 20:46:52
Hartmut_M
Hallo Nepumuk,
danke für den Tip. Die Punkte werden so automatisch gesetzt. Das funktioniert.
Gibt es auch eine Lösung, dass die Zahl zwischen den Punkten immer 7-stellig ist, ggfs. mit führenden Nullen?
Wäre schön, wenn es auch dafür eine Lösung gibt.
Gruß Hartmut
AW: Teillösung
11.11.2003 20:59:23
Nepumuk
Hallo Hartmut,
wie wäre es hiermit?


Option Explicit
Private Sub TextBox1_Change()
If Len(TextBox1) = 2 Or Len(TextBox1) = 10 Then TextBox1 = TextBox1 & "."
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44: KeyAscii = 46
Case 48 To 57
Case Else: KeyAscii = 0
End Select
If KeyAscii = 46 And Len(TextBox1) > 3 And Len(TextBox1) < 11 Then TextBox1 = Left(TextBox1, 3) & String(11 - Len(TextBox1), "0") & Mid(TextBox1, 4)
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
Fast Okay
11.11.2003 22:05:49
Hartmut_M
Hallo Nepomuk, das sieht schon sehr gut aus.
Folgendes Problem gibt es noch:
Statt des Punktes funktioniert die Eingabe nur mit einem Komma
und es erscheint eine Null zuviel. Insgesamt dürfen nur 7 Ziffern
zwischen den Punkten stehen.
Ist Keyascii 46 das Komma und wenn ja wie ist die Nummer für den Punkt?
Und um die eine 0 zu reduzieren muss ich dann statt der 11 die 10 eingeben?
Eine Hilfe wäre es mir, wenn du den Code noch mit Stichworten auskommentieren
könntest. Bist du so gut?
Du hast mir schon sehr weitergeholfen. Vielen Dank.
Hartmut
AW: Fast Okay
12.11.2003 19:55:41
Nepumuk
Hallo Hartmut,
das war wohl nix. Neuer Versuch:


Option Explicit
Dim bolLoeschen As Boolean
Private Sub TextBox1_Change()
If Not bolLoeschen Then If Len(TextBox1) = 2 Or Len(TextBox1) = 10 Then TextBox1 = TextBox1 & "." 'wenn Backspace dann keine Reaktion
End Sub
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 8 And (Len(TextBox1) = 3 Or Len(TextBox1) = 11) Then 'wenn Backspack vor Punkt
bolLoeschen = True 'Punkterzeugung in Change - Ereignis unterdrücken
TextBox1 = Left(TextBox1, Len(TextBox1) - 1) 'Punkt löschen
bolLoeschen = False ' Change - Ereignis wieder zulassen
End If 'wenn die Prozedur verlassen wird, wird der Backspace ausgeführt
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Select Case KeyAscii
Case 44: KeyAscii = 46 'Komma in Punkt umwandeln
Case 46:    'Punkt - keine Aktion
Case 48 To 57 'Ziffern von 0 bis 9 - keine Aktion
Case Else: KeyAscii = 0 'alle anderen Zeichen unterdrücken
End Select
If KeyAscii = 46 And Len(TextBox1) > 3 And Len(TextBox1) < 11 Then _
TextBox1 = Left(TextBox1, 3) & String(10 - Len(TextBox1), "0") _
& Mid(TextBox1, 4) 'wenn Punkt zwichen 3. und 10. Stelle dann Vornullen erzeugen
If KeyAscii = 46 Then KeyAscii = 0 'Punkt wieder unterdrücken
End Sub



Code eingefügt mit: Excel Code Jeanie

Gruß
Nepumuk
Anzeige
Hurra - es funktioniert!!!
13.11.2003 15:40:34
Hartmut_M
Hallo Nepumuk,
das war die Lösung. Vielen Dank nochmals für Deine mehrfache Unterstützung.
Werde Dich für den Excel-Gummiorden vorschlagen ;-)
Gruß Hartmut

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige