AW: Button aktivieren
08.03.2009 15:54:32
Tino
Hallo,
funktioniert alles nicht so richtig wenn es noch mehrere Steuerelemente gibt.
Bin jetzt den Umweg über KeyUp gegangen, etwas besseres fällt mir jetzt nicht ein.
Habe das prüfen auf Zahl noch in eine Funktion ausgelagert.
Private Sub CommandButton1_Enter()
If CommandButton1.Tag = "1" Then Exit Sub
'Dein Code
'...
'...
End Sub
'kleiner umweg über KeyUp
Private Sub CommandButton1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then CommandButton1_Enter
End Sub
'CommandButton1.Enabled Standart auf False setzen
Private Sub TextBox5_Change()
Dim PunktOderKomma As String
PunktOderKomma = IIf("0.5" * 2 = 1, ".", ",")
With Me.CommandButton1
If Len(TextBox5) > 0 Then
If Len(TextBox5) - InStrRev(TextBox5, PunktOderKomma) > 1 And InStr(TextBox5, PunktOderKomma) > 0 Then
.Enabled = True
.Tag = "1"
.SetFocus
.Tag = ""
Else
.Enabled = False
End If
Else
.Enabled = False
End If
End With
End Sub
Private Sub TextBox5_KeyPress(ByVal intKeyAsc As MSForms.ReturnInteger)
intKeyAsc = NurZahlenZulassen(TextBox5, CInt(intKeyAsc))
End Sub
'Funktion zum prüfen einer Textbox ---> Nur Zahlen zulassen
Private Function NurZahlenZulassen(objTextBox As MSForms.TextBox, intKeyNumber As Integer) As Integer
Dim PunktOderKomma As String
PunktOderKomma = IIf("0.5" * 2 = 1, ".", ",")
If intKeyNumber = 44 Or intKeyNumber = 46 Then
If InStr(objTextBox, PunktOderKomma) = 0 And Len(objTextBox) > 0 Then
NurZahlenZulassen = IIf("0.5" * 2 = 1, 46, 44)
Else
NurZahlenZulassen = 0
End If
Else
Select Case intKeyNumber
Case 48 To 57: NurZahlenZulassen = intKeyNumber
Case Else: NurZahlenZulassen = 0
End Select
End If
End Function
Gruß Tino