Clever-Excel-Forum

Normale Version: Laufzeitfehler 80010108
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Ein Kandidat für den call stack overflow.
Hallöchen,

mal abgesehen von der überdenkenswerten Logik, wie gesagt, schaue, dass Du die ganzen Zellzugriffe reduzierst. Im Anhang hab ich mal bisschen was gemacht, allerdings kommst Du damit höchstens schneller an die Grenze. Da gibt es auch noch weitere Reserven ...

- ich habe nicht überall Arrays eingesetzt. Befasse Dich mit dem Thema ...
- Deine Prüfungen sind codeseitig durch Parameterisierung sicher weiter zusammenfassbar
- Deine Summenbildung in Zeile 2 ist sicher bereits im Code machbar wenn Du in den Schleifen eine entsprechende Variable nutzt.
...Dann brauchst Du eventuell auch keine Null-Setzung und es reicht, die Einsen zu zählen
- welchen Sinn hat das mehrfache hochkopieren am Ende? (.Range("HB3:KW1500").Copy .Range("HB2"))
...Wird im Original danach irgendwas berechnet? Sonst würde das keinen Sinn ergeben, oder?
Hallo,

vielen Dank für die Hilfe!

Da es meine ersten Erfahrungen mit VBA sind, sind alle Tipps sehr hilfreich.

Ich werde die Punkte jetzt einzeln aufarbeiten und versuchen umzusetzten. Dank der korrigierten Version weiß ich schon mal in welche Richtung es gehen soll.

Das hochkopieren hat den Hintergrund, die Daten des nächsten Auftrages, welcher berechnet wird, in Zeile 2 zu schreiben. Die Daten des aktuellen Auftrages wurden fertig übertragen und werden nicht mehr benötigt.  Der Kopiervorgang wird schneller von Excel umgesetzt als den Bereich zu löschen, so mein Eindruck.

Zusätzlich werde ich mich auch noch mit den Thema Stack Overflow befassen, hier habe ich leider einen größeren Anfängerfehler produziert. Da ich immer das nächste Makro aufrufe schließt der alte Stack nicht ab und irgendwann ist die Grenze erreicht. So war mir das leider nicht bewusst.

Sollten sich weitere Frage ergeben, melde ich mich Smile

Nochmals Danke und viele Grüße
Hallöchen,

Zitat:Das hochkopieren hat den Hintergrund, die Daten des nächsten Auftrages, welcher berechnet wird, in Zeile 2 zu schreiben. Die Daten des aktuellen Auftrages wurden fertig übertragen und werden nicht mehr benötigt. Der Kopiervorgang wird schneller von Excel umgesetzt als den Bereich zu löschen, so mein Eindruck.

auch hier könntest Du in einer Schleife Zeile für Zeile verarbeiten und vielleicht ganz am Ende den kompletten Bereich mit ....Value = "" leeren oder mit ClearContents oder ...

Bei meinen Arrays übrigens noch ein Hinweis. ..1 und ..2 hab ich der Einfachheit halber ab Spalte A gefüllt, da brauch ich bei den "Spaltendurchläufen" nix zu ändern und zu verrechnen.
Bei ..3 hab ich dann nur den entsprechenden Bereich verarbeitet und ab der Startspalte gefüllt.

Beim Verplanen_S hab ich nur für die erste Schleife Arrays und Variablen gesetzt. Das kann man für die andern Schleifen und das andere Verplanen ebenso tun.
Aber, wie gesagt, versuch mal die Zellzugriffe zu reduzieren, und darüber hinaus auch die Aktionen generell.
(08.12.2020, 08:11)schauan schrieb: [ -> ]Bei meinen Arrays übrigens noch ein Hinweis. ..1 und ..2 hab ich der Einfachheit halber ab Spalte A gefüllt, da brauch ich bei den "Spaltendurchläufen" nix zu ändern und zu verrechnen.
Bei ..3 hab ich dann nur den entsprechenden Bereich verarbeitet und ab der Startspalte gefüllt.

Beim Verplanen_S hab ich nur für die erste Schleife Arrays und Variablen gesetzt. Das kann man für die andern Schleifen und das andere Verplanen ebenso tun.
Aber, wie gesagt, versuch mal die Zellzugriffe zu reduzieren, und darüber hinaus auch die Aktionen generell.

Danke für die Hinweise!
Seiten: 1 2