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...
DevHB Geschrieben 25. Januar 2006 Geschrieben 25. Januar 2006 Hi, "Instr" fängt bei 1 an zu Zählen: nPos = Instr(1,...) Gruß DevHB
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden