Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formeloptimierung

Formeloptimierung
reiner
Hallo Leute,
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

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Formeloptimierung
09.03.2011 19:50:12
Christian
hallo Reiner,
wenn man jetzt noch wüsste, was in deinen Zellen steht ... Tage, Stunden, Minuten?
Gruß
Christian
AW: Formeloptimierung
09.03.2011 21:06:05
reiner
MINUTEN
AW: Formeloptimierung
09.03.2011 21:24:58
Reinhard
Hallo Reiner,
in deinen Zellen steht also der Text "Minuten", was soll man da berechnen?
Ich hab jetzt deine Anfrage nur halb überflogen und kann auch völlig daneben liegen, aber may be, die Nachfrage ist so gemeint,
Wie sind die Zellen formatiert.
Was steht drin, woher kommt das, Import aus SAP o.ä. mit seltsamen Nebeneffekten.
Was wird angezeigt,
Und dazu gehört auch, ohne daß du manuell da Links, Rechts stehend o.ä. anklickst,
wo stehen die Einträge, links oder rechts in der Zelle?
Das sind für Fremde wichtige Informationen um dir überhaupt helfen zu können, aus der Ferne.
Gruß
Reinhard
Anzeige
AW: Formeloptimierung
09.03.2011 22:09:54
Rudi
Hallo,
wozu denn Summe drumrum?
Du muss doch nur prüfen, ob die Anfangszeit größer als die Endezeit ist und dann 1 addieren.
=(((C4+D4)>(E4+F4))+E4+F4-(C4+D4))*1440
Gruß
Rudi
Formeloptimierung ?
10.03.2011 09:45:17
Erich
Hi Reiner,
bevor man das in VBA angeht, wäre zu klären, was die Formel rechnen soll.
Habe ich die Spalten C:F hier richtig verstanden?
Was soll wann herauskommen? Welche der Spalten I bis L stimmen?
 CDEFGHIJKL
409.03.201123:0010.03.201109:30  630,000000000630,000000000630,000000000630,000000000
508.03.201123:0010.03.201109:30  2070,0000000002070,0000000002070,000000000630,000000000
609.03.201123:0010.03.201101:30  149,999999997149,999999997149,999999997149,999999997
710.03.201123:0010.03.201101:30  -1290,000000003-1290,000000003149,999999997149,999999997
8 23:00 01:30  -1290,000000000-1290,000000000150,000000000150,000000000

Formeln der Tabelle
ZelleFormel
I4=(F4+E4-D4-C4)*1440
J4=SUMME((F4+E4)-(D4+C4))*1440
K4=(((C4+D4)>(E4+F4))+E4+F4-(C4+D4))*1440
L4=REST(F4+E4-D4-C4;1)*1440

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
vielen Dank für die bisherigen Rückmeldungen
10.03.2011 13:24:55
reiner
hallo,
Ich stimme ErichG zu, dass man zunächst eine Formellösung finden sollte bevor die Berechnung über VBA erfolgt.
Unter :

https://www.herber.de/bbs/user/73921.xls
habe ich eine abgespeckte Version der Tabelle hochgeladen, in Zeile 2 ist auch das falsche noch nicht gerundete Rechenergebnis aufgeführt. Das Ergebnis muss 8 [Minuten] und nicht 1448 [Minuten] lauten.
mfg
reiner
AW: vielen Dank für die bisherigen Rückmeldungen
10.03.2011 14:31:23
Christian
Hallo,
die Formel: =(F2+E2-D2-C2)*1440 ist korrekt.
Aber wenn du die Zellen F1:F2 in "TT.MM.JJJJ hh:mm" formatierst siehst du, dass in F1 der 0.1.1900 und in F2 der 1.1.1900 steht.
Also: falscher Eintrag in F2. Daher kommt auch das Falsche raus.
Gruß
Christian
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige