Fehlerabfrage liefert falsche Werte
26.03.2016 14:36:59
Jens
Bei der Tabelle zur Arbeitszeiterfassung habe jetzt eine Fehler-Variable eingebaut, die prüft, ob auch nur zulässige Arbeits- und Pausenzeiten in der Tabelle eingegeben wurden.
Die ersten drei Abfragen (Richtige Eintragung bei Urlaub, Arbeitszeit über zehn Stunden, Arbeitszeit nicht negativ) funktionieren einwandfrei.
Nur die vierte Abfrage funktioniert nicht. Also diese:
If Range("E" & lZeile).Value 0 And (Range("D" & _
lZeile).Value * 1440) MsgBox "Fehler in Zeile """ & lZeile & """ Bei einer Arbeitszeit von mehr als _
sechs Stunden muss die Pause mindestens 30 Minuten betragen."
Fehler = True
End If
Das hat bestimmt etwas mit der Formatierung der Zellen in Excel zu tun. Die Zellen der Spalte B,C und D sind in hh:mm formatiert. B ist dabei Anfangsarbeitszeit, C Arbeitszeitende und D ist die Pausenzeit. Die Spalte E ist die Gesamtarbeitszeit (formatiert benutzerdefiniert im Format 0,00;-0;;@).
Ich weiss leider nicht, was genau Excel da als Wert angibt wenn in der Zelle z.B. 00:30 steht. Ich vermute mal, dass der Wert mit 1440 multipliziert werden muss. Aber die Abfrage läuft so eben auch nicht korrekt. Weiss da jemand weiter ?
Vielen Dank !
Der ganze Code:
Private Sub CommandButton1_Click()
Dim lZeile As Long
Dim Fehler As Long
Fehler = False
For lZeile = 14 To 44
If Range("F" & lZeile).Value = "URLAUB" Then
If Range("B" & lZeile).Value = "" Or _
Range("C" & lZeile).Value = "" Then
MsgBox "Fehler in Zeile """ & lZeile & """ Bei geringfügig Beschäftigten mü _
ssen die geplanten Arbeitszeiten für einen Urlaubstag angegeben werden."
Fehler = True
End If
End If
If Range("E" & lZeile).Value > 10 Then
MsgBox "Fehler in Zeile """ & lZeile & """ Die tägliche Arbeitszeit darf zehn _
Stunden nicht überschreiten."
Fehler = True
End If
If Range("E" & lZeile).Value 0 And (Range("D" & _
_
_
lZeile).Value * 1440)