Formeloptimierung
reiner
mit der Formel in nachfolgendem Programmcode wird ein Zeitraum in Minuten ermittelt. Wenn nun der Zeitraum kurz vor 24.00 Uhr beginnt und erst nach 0:00 Uhr endet, dann wird zu dem errechneten Zeitraum der Zahlenwert 1440 (Minuten) addiert, was natürlich falsch ist.
Range("I4").Select
ActiveCell.FormulaR1C1 = "=SUM((RC[-3]+RC[-4])-(RC[-5]+RC[-6]))*1440"
Selection.Copy
Range(Cells(4, 9), Cells(LetzteZeile + 3, 9)).Select
Selection.PasteSpecial Paste:=xlFormulas, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.NumberFormat = "0.000000000000"
Minutenüberprüfung:
Do Until ActiveCell.Value = ""
If ActiveCell.Value > 1440 Then
ActiveCell.Value = ActiveCell.Value - 1440
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
Range("J4").Select
mit vorstehender Minutenüberprüfung wird die Spalte mittels einer Do..Loop-Schleife durchlaufen und sowie ein Ergebnis erkannt wird das größer als 1440 Minuten lautet, dann wird von dem Ergebnis sofort 1440 subtrahiert; das klappt auch alles zur vollen Zufriedenheit. Was mich jedoch stört ist der zusätzliche Zeitaufwand für das Abarbeiten der Schleife. Die Frage die ich an das Forum richte lautet: Lässt sich die Minutenprüfung programmiertechnisch anders lösen als mit einer zeitaufwendigen Schleife, z.B. als Bestandteil der obigen Formel?
mfg
reiner