Clever-Excel-Forum

Normale Version: VBA Code braucht eine Korrektur zum Thema Erkennen Tage anhand der Uhrzeiten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich muss die Ausbringung einiger Abteilungen aus dem SAP exportieren und in Excel die Ausbringung präsentieren.

Das Problem ist, dass Excel verstehen muss, dass ich den Tag nicht wie gewöhnlich von "00:00:00" bis  "00:00:00" betrachten möchte. Der Tag beginnt für uns um "06:00:00" und endet am nächsten Tag um "06:00:00". Am Ende des Tages möchte ich die Gutmenge der Abt. "AA" ,"BB" und "CC" wissen. Ich habe es nicht mal für die Abt. "AA" es hinbekommen. Undecided

Eine Datei mit meinem Code füge ich bei. Ich danke Euch im Voraus für Eure Unterstützung.
moin,

zieh doch einfach 6 Stunden vom Zeitstempel ab...

Viele Grüße
derHöpp
(06.02.2024, 13:27)derHoepp schrieb: [ -> ]moin,

zieh doch einfach 6 Stunden vom Zeitstempel ab...

Viele Grüße
derHöpp

Wie ? Huh Ich habe es nicht verstanden Undecided
Ich stelle fest, dass ich die falsche Datei hochgeladen habe.
Jetzt aber.... 17
Hallo,

[attachment=50806]

Gruß, Uwe
Hi,

dafür braucht man doch kein VBA, das auch noch sehr langsam arbeitet (bei mir 36 Sekunden).

Es reicht die Formel
B2[:B376]: =SUMMENPRODUKT(('2024'!$A$2:$A$1052="AA")*(('2024'!$B$2:$B$1052+'2024'!$C$2:$C$1052-0,25)>=A2)*(('2024'!$B$2:$B$1052+'2024'!$C$2:$C$1052-0,25)<(A2+1))*'2024'!$D$2:$D$1052)

Hier benötigt Excel zum Berechnen der 366 Formeln bei einem CalculateFullRebuild gerade mal 0,03 Sekunden.
Selbst wenn ich es auf die 50.000 Zeilen der VBA-Routine ausdehne, dann sind es gerade mal 1,3 Sekunden.

Mit einer Hilfsspalte, die ('2024'!$B$2:$B$1052+'2024'!$C$2:$C$1052-0,25) einmalig berechnet, dürfte es noch etwas schneller werden - vor allem da man dann SUMMEWENNS auf die gesamten Spalten verwenden kann.
unsachlich, gelöscht
(07.02.2024, 04:18)Tommiks schrieb: [ -> ]Wie ? Huh Ich habe es nicht verstanden Undecided

Moin,

1. entferne zunächst den Filter.
2. Füge eine neue Spalte "Arbeitstag" hinzu
3. Die neue Spalte erhält die folgende Formel:
Code:
=GANZZAHL(B2+D2-ZEIT(6;0;0))
4. Erstelle eine Pivottabelle (Ribbon Einfügen-> Bereich Tabellen -> PivotTable)
5. In der Pivottabelle:
- Arbeitstag in die Zeilen
- Fertigungsstelle in die Spalten
- GutMenge in die Werte
6. fertig; Kein VBA, Kein Rumgehampel.

Viele Grüße
derHöpp
Top! Auf die Idee mit GANZZAHL (oder KÜRZEN) bin ich jetzt nicht gekommen. Damit vereinfacht sich meine Formel auf

=SUMMENPRODUKT(('2024'!$A$2:$A$1052="AA")*(KÜRZEN('2024'!$B$2:$B$1052+'2024'!$C$2:$C$1052-0,25;0)=A2)*'2024'!$D$2:$D$1052)

und eine Zeit von 0,026 Sekunden bzw. bei 50.000 Zeilen auf 0,84 Sekunden.

Aber Pivot ist allemal besser.
Vielen vielen Dank für effektive Lösung meines Problems... 18