Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Keypressabfragen in eine Funktion auslagern

Betrifft: Keypressabfragen in eine Funktion auslagern von: Ronny
Geschrieben am: 02.10.2014 13:56:26

Hallo zusammen,

ich versuche krampfhaft eine Keypressabrage für Textboxen in einer userform in eine Funktion zu pressen. Leider schmiert Excel dann regelmäßig ab.

Wer weiß wie´s geht?

Meine Sub schauen eigentlich ganz einfach aus und funktionieren auch. Aber das muß doch schöner gehen. Leider habe ich mit Funktionen mal so gar keine Ahnung.

Private Sub Breite_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Zahlenfelder prüfen
    Select Case KeyAscii
        Case Asc("0") To Asc("9")
        Case Asc(".")
            If InStr(1, UserForm4.Breite.Text, ".") > 0 Then
                KeyAscii = 0
            End If
        Case Else
            MsgBox ("nur Zahlen erlaubt")
            KeyAscii = 0
    End Select
End Sub

Private Sub Hoehe_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Zahlenfelder prüfen
    Select Case KeyAscii
        Case Asc("0") To Asc("9")
        Case Asc(".")
            If InStr(1, UserForm4.Hoehe.Text, ".") > 0 Then
                KeyAscii = 0
            End If
        Case Else
            MsgBox ("nur Zahlen erlaubt")
            KeyAscii = 0
    End Select
End Sub

Private Sub Tiefe_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Zahlenfelder prüfen
    Select Case KeyAscii
        Case Asc("0") To Asc("9")
        Case Asc(".")
            If InStr(1, UserForm4.Tiefe.Text, ".") > 0 Then
                KeyAscii = 0
            End If
        Case Else
            MsgBox ("nur Zahlen erlaubt")
            KeyAscii = 0
    End Select
End Sub

  

Betrifft: AW: Keypressabfragen in eine Funktion auslagern von: Hajo_Zi
Geschrieben am: 02.10.2014 14:05:48

benutze Klassen.

GrußformelHomepage


  

Betrifft: AW: Keypressabfragen in eine Funktion auslagern von: Daniel
Geschrieben am: 02.10.2014 14:06:39

Hi

so vielleicht:

Private Sub Breite_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Zahlenfelder prüfen
    KeyAscii = NurZahl(KeyAscii, Breite.Text)
End Sub

Private Sub Hoehe_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Zahlenfelder prüfen
    KeyAscii = NurZahl(KeyAscii, Hoehe.Text)
End Sub

Private Sub Tiefe_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'Zahlenfelder prüfen
    KeyAscii = NurZahl(KeyAscii, Tiefe.Text)
End Sub

Function NurZahl(ByVal Wert, ByVal TXT as string) 'Zahlenfelder prüfen
    Select Case Wert
        Case Asc("0") To Asc("9")
        Case Asc(".")
            If InStr(1, TXT, ".") > 0 Then
                Wert = 0
            End If
        Case Else
            MsgBox ("nur Zahlen erlaubt")
            Wert = 0
    End Select
NurZahl = Wert
End Function
Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Keypressabfragen in eine Funktion auslagern"