TDM Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 Hallo, ich möchte abprüfen ob ein Textfeld eine gültige Zeit enthält Private Sub txtBegin_Exit(ByVal Cancel As MSForms.ReturnBoolean) On Error GoTo ErrorMessage Dim strData As String Dim nH, nM As Integer Dim nPos As Integer Dim bResult As Boolean Dim dtTime As Date strData = Trim(txtBegin.Text) bResult = False If ((Not (InStr(0, strData, ":", 0) = 0)) Or (Not (InStr(0, strData, ".", 0) = 0))) Then nPos = InStr(0, strData, ":") nH = CInt(Left(strData, nPos - 1)) nM = CInt(Right(strData, Len(strData) - (nPos + 1))) If (IsNumeric(nH) And IsNumeric(nM)) Then If ((nH >= 0 And nH < 23) And (nM > 0 And nM < 59)) Then dtTime = TimeSerial(nH, nM, 0) bResult = True Else bResult = False End If End If End If If (Not bResult) Then MsgBox prompt:="ungültige Zeit", buttons:=vbOKOnly, Title:="Fehler: 006" & "in " & Me.Caption & " txtBegin_Exit" txtBegin.setFocus End If Exit Sub ErrorMessage: MsgBox prompt:=Err.Description, buttons:=vbOKOnly, Title:="Fehler: " & CStr(Err.Number) & "in " & Me.Caption & " txtBegin_Exit" End Sub Ich hab das jetzt getestet mit strData = "8:00" nur irgentwie sagt der mir immer: InStr - Unzulässiger Prozeduraufruf oder ungültiges Argument Warum ? Vermutlich seh ich den Wald vor lauter Bäumen nicht... Zitieren
DevHB Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 Hi, "Instr" fängt bei 1 an zu Zählen: nPos = Instr(1,...) Gruß DevHB Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.