AW: Autom. Pruefen der Eingaben
26.07.2003 09:34:48
Hajo_Zi
Hallo Jonas
Leider hast Du nicht geschrieben was gültige Eingaben sin. Für eine Userform.
Option Explicit
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' Ansatz VB 6 Buch von Peter Monadjemi
' nur Zahlen und ein Komma
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc("."), Asc(",")
If InStr(TextBox1, ",") <> 0 Then
KeyAscii = 0
Else
KeyAscii = Asc(",")
End If
Case Asc(vbBack)
' Case Asc("-")
' If Len(TextBox1) = 0 Then
' If InStr(TextBox1, "-") <> 0 Then
' Else
' KeyAscii = Asc("-")
' End If
' Else
' KeyAscii = 0
' End If
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' von Peter Haserodt
' nur Buchstaben
Select Case KeyAscii
Case 97 To 122, 65 To 90, 228, 246, 252, 196, 214, 220, 223
Case Else
KeyAscii = 0
MsgBox "Nur Buchstaben", vbExclamation
End Select
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' von Peter Haserodt
' nur Buchstaben (Groß)
Select Case KeyAscii
Case 65 To 90, 196, 214, 220
Case Else
KeyAscii = 0
MsgBox "Nur Großbuchstaben", vbExclamation
End Select
End Sub
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' von Ernst Dunkel hat ein Fehler es können auch mehrere Kommas eingegeben werden
' Eingaben nur Zahlen
If Chr(KeyAscii) Like "[0-9]" = False Then KeyAscii = 0 'oder mit Komma ,0-9
End Sub
Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' von L.Vira, kein Komma
' Eingaben nur Zahlen
Select Case KeyAscii
Case 48 To 57
Case Else: KeyAscii = 0
End Select
End Sub
Private Sub TextBox6_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
' erstellt von Hajo.ziplies@web.de
' Datumseingabe 01.01.03;1.1.03 oder komlettes Jahr
' Buchstaben werden ausgeschlossen, nur Zahlen und Punkt
' die Überprüfung ob Datum erfolgt in Private Sub TextBox6_AfterUpdate()
Select Case KeyAscii
Case Asc("0") To Asc("9")
Case Asc(".")
If Len(TextBox6) = 0 Then
KeyAscii = 0
Else
If Len(TextBox6) - Len(Application.Substitute(TextBox6, ".", "")) = 2 Then
KeyAscii = 0
ElseIf Len(TextBox6) > 1 Then
If Mid(TextBox6, Len(TextBox6), 1) = "." Then KeyAscii = 0
Else
KeyAscii = Asc(".")
End If
End If
Case Else
KeyAscii = 0
End Select
End Sub
Private Sub TextBox6_AfterUpdate()
' Jahreszahl vom aktuellen Jahr ergänzen falls nicht vorhanden
If Len(TextBox6) - Len(Application.Substitute(TextBox6, ".", "")) = 1 Then
TextBox6 = TextBox6 & "." & Year(Date)
End If
If IsDate(TextBox6.Text) Then
If Format(CDate(TextBox6.Value), "dd.mm.yy") <> TextBox6 Then
MsgBox "Das Datum wurde übersetzt"
End If
TextBox6 = Format(CDate(TextBox6.Value), "dd.mm.yy")
Else
TextBox6 = ""
End If
End Sub
Code eingefügt mit: Excel Code Jeanie
Falls Code vorhanden wurde dieser getestet unter Betriebssystem XP Pro und Excel Version XP SBE.
Bitte kein Mail, Probleme sollen im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.