Hallo Volkmar! Also hier mal eine Lösungsvariante. Dabei werden die Endezeiten berechnet und in Spalte D eingetragen. Gleichzeitig wird in Zeile 6 die mögliche Kapazitätenzahl angepasst. Problem ist mE aber, dass am letzten Tag die Zeit hinzuaddiert wird. Das gilt dann aber ab 00:00 UHr. Da müsste man noch anpassen, wann die Arbeit losgeht. So startet man bei MItternacht. Das verschiebt dann ggf. die Endzeit. VG
Sub ende_finden()
Dim zeile As Long
Dim ende As Long
Dim dauer As Double
Dim startzeit As Double
Dim gefunden As Boolean
Dim zusatz As Double
Dim spalte As Long
ende = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
If ende = 9 Then End
For zeile = 10 To ende
If ActiveSheet.Cells(zeile, 1) <> "" And ActiveSheet.Cells(zeile, 4) = "" Then
dauer = CDbl(ActiveSheet.Cells(zeile, 6))
startzeit = CDbl(ActiveSheet.Cells(zeile, 3))
gefunden = False
spalte = 10
zusatz = 0
While gefunden = False
If (ActiveSheet.Cells(6, spalte)) = "" Then
MsgBox "Es wurde kein Tag mit Kapazität mehr gefunden. Die Berechnung konnte nicht beendet werden. Bitte die Daten überprüfen", , "Fehler bei Kapazitäten"
End If
If dauer <= CDbl(ActiveSheet.Cells(6, spalte)) Then
zusatz = zusatz + dauer / 24 / 60
ActiveSheet.Cells(6, spalte) = ActiveSheet.Cells(6, spalte) - dauer
gefunden = True
Else
dauer = dauer - CDbl(ActiveSheet.Cells(6, spalte))
ActiveSheet.Cells(6, spalte) = 0
zusatz = zusatz + 1
spalte = spalte + 1
End If
Wend
ActiveSheet.Cells(zeile, 4) = Format(startzeit + zusatz, "dd/mm/yyyy hh:mm")
End If
Next zeile
|