412 Aufrufe
Gefragt in Tabellenkalkulation von holger157 Einsteiger_in (7 Punkte)
Hallo,

für eine Arbeitszeiterfassung möchte ich die Uhrzeiten vierstellig eingeben. Davon soll eine anzugebende Pausenzeit (Dezimalzahl, z.B. 0,5) automatisch abgezogen werden.
Ich habe es mit folgendem Code versucht, dabei kollidieren jedoch Uhrzeit-System und Dezimalzahl der Pausenzeit bei der Eingabe:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Eingabebereich As String
Dim Eingabe, Zeitwert
On Error GoTo ChgEvent_Error
Eingabebereich = "D4:AL34"
If Not Application.Intersect _
(Target, ActiveSheet.Range(Eingabebereich)) _
Is Nothing _
And _
IsNumeric(Target.Value) _
And _
Target.Cells.Count = 1 Then
Application.EnableEvents = False
Eingabe = Format(Target.Value, "0000")
Zeitwert = _
Left(Format(Eingabe, "0000"), _
Len(Eingabe) - 2) & ":" & _
Right(Format(Eingabe, "0000"), 2)
Target.Value = Zeitwert
End If
ChgEvent_Error:
Application.EnableEvents = True
End Sub

Wie muss ich den Code verändern, um in Spalten A+B die Uhrzeiten vierstellig eingeben zu können, in Spalte C eine Pausenzeit im Dezimalformat und dass dann letztlich in Spalte D eine Arbeitszeit bestehend aus Anwesenheitszeit (Spalte B minus Spalte A) abzüglich Pausenzeit (Spalte C) errechnet wird?

Da in jedem Team vier MItarbeiter arbeiten, müsste der Code so programmiert werden, dass ich den gesamten zuvor beschriebenen Aufbau dann viermal hintereinander habe.
Kurzum: Wie muss der Code verändert werden, dass es für die vierstellige Zeiteingabe vier voneinander getrennte Eingabebereiche gibt - dazwischen wären dann die Spalten mit Pausenzeiten und Arbeitszeitberechnung im Dezimalformat???

Vielen Dank schon mal für euer Mitdenken!

2 Antworten

0 Punkte
Beantwortet von
Hallo Holger,

dein Code ist eigentlich korrekt. Lediglich den Eingabebereich würde ich auf die wirklichen Eingabezellen anpassen. z.B.:

Eingabebereich = "A4:B34,E4:F34,I4:J34,M4:N34"

wenn nun die Pausenzeiten dezimal dargestellt sind (warum auch immer), dann musst du vielmehr die Berechnungformel für D4 anpassen:

=B4-A4-1/24*C4

Dann einfach in die anderen Berechnungszellen kopieren.

Gruß Mr. K.
0 Punkte
Beantwortet von holger157 Einsteiger_in (7 Punkte)
Hallo Mr. K.,

vielen herzlichen Dank. Das hat mein Problem gelöst! Jetzt habe ich verstanden, wie man die unterschiedlichen Eingabebereiche im Code angibt.

1000 Dank!
Holger
...