Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1048to1052
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
Inhaltsverzeichnis

Textbox: nur 2Stellen nach Komma

Textbox: nur 2Stellen nach Komma
08.02.2009 12:49:00
WolfgangN
Hallo,
Ich habe eine Textbox in einem Userform, in dieser Textbox möchte ich schon während der Eingabe verhindern, dass der User nach dem Komma mehr als 2 Ziffern eingeben kann. Also ab der 3.Ziffer soll nichts mehr passieren. Vor dem Komma ist die Anzahl egal. Im Archiv habe ich schon einige Varianten mit InStr(TextBox1, ",") gefunden, leider reichen meine Kenntnisse nicht aus dies in meiner Textbox einzufügen.
Ich bitte deshalb um Hilfe. Danke für Euer Interesse.
Gruß Wolfgang
Hier mein jetziger Code. Die letzten 4 Zeilen müßten angepaßt werden, alles davor klappt gut.

Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Dim S As Integer
Select Case KeyAscii
'lässt nur Zahlen von 0-9 zu,
Case 48 To 57
'bei Eingabe von Punkt wird Komma daraus, dann wird verhindert,
'dass mehr als ein Komma eingetragen wird,
Case 46: KeyAscii = 44
If InStr(TextBox1, ",") > 0 Then
KeyAscii = 0
ElseIf InStr(TextBox1, ",") = 0 And Len(TextBox1) = 0 Then
TextBox1 = "0"
End If
Case 44
If InStr(TextBox1, ",") > 0 Then
KeyAscii = 0
'wenn nur ein Komma eingegeben wird erscheint 0, in Textbox,
ElseIf InStr(TextBox1, ",") = 0 And Len(TextBox1) = 0 Then
TextBox1 = "0"
End If
Case Else
KeyAscii = 0 'alle anderen Tasten bewirken nichts
End Select
'verhindert, dass eine Null vor einer folgenden Zahl steht, Null vor Komma erlaubt,
While TextBox1 Like "0*" And Not TextBox1 Like "0,*" And KeyAscii  44
TextBox1 = Right(TextBox1, Len(TextBox1) - 1)
Wend
'es werden nur 2 Stellen nach dem Komma zugelassen
'S = InStr(TextBox1, ",")
'If Len(TextBox1) = 4 And S = 0 Then KeyAscii = 44
'If S > 0 Then TextBox1.MaxLength = S + 2
End Sub


4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textbox: nur 2Stellen nach Komma
08.02.2009 13:08:00
Josef
Hallo Wolfgang,
das geht so.
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
    Select Case KeyAscii
        Case 48 To 57
            If InStr(1, TextBox1, ",") > 0 Then
                If Len(Mid(TextBox1, InStr(1, TextBox1, ",") + 1)) > 1 Then KeyAscii = 0
            End If
        Case 44
            If InStr(1, TextBox1, ",") > 1 Then KeyAscii = 0
        Case Else
            KeyAscii = 0
    End Select
End Sub

Gruß Sepp

Anzeige
Danke und Nachfrage
08.02.2009 13:44:30
WolfgangN
Hallo Sepp,
vielen Dank für Deine Hilfe, klappt super.
Hätte aber noch eine Frage.
Was bewirkt die Zeile (Komma):
Case 44
If InStr(1, TextBox1, ",") größer 1 Then KeyAscii = 0
Bei meinen Tests wurde diese Zeile nie angesprochen.
Hatte sie auch weggelassen und alles hat geklappt.
Vielen Dank ung Gruß
Wolfgang
AW: Danke und Nachfrage
08.02.2009 13:46:00
Josef
Hallo Wolfgang,
sie bewirkt das nur ein Komma eingegeben werden kann.
Gruß Sepp

Danke
08.02.2009 13:51:00
WolfgangN
Hallo Sepp,
vielen Dank und einen schönen Sonntag
Gruß
Wolfgang
Anzeige

315 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige