Performance-Problem mit Array lösen?
08.02.2019 08:42:52
Sven
ich benötige bitte Eure Unterstützung:
Ich haben einen VBA-Code der mir tgl. die Arbeit erleichtert und recht großen händigen Aufwand in meiner Abteilung reduziert.
Problem hierbei ist eine neu eingebaute Aufbereitung der Daten, welche ca. 5 Minuten dauert. Die Performance ist für mich inakzebtabel!!!
Syntax:
Ich durchlaufe mit For-Schleife ein Tabellenblatt mit vielen Zeilen.
Wenn die Zeile (bzw. eine einzelne Zelle in der Zeile) eine bestimmte Bedingung erfüllt, kopiere ich diese Zeile in eine zweite Tabelle (letzte beschrieben Zeile +1) und starte eine zweite For-Schleife, welche diese Zeile solange untereinander dupiziert bis eine zweite Bedingung nicht mehr erfüllt ist.
Dabei wird eine Zelle der letzten Spalte um den Wert 1 erhöht.
Ich arbeite beim bearbeiten von Tabellen in der Regel mit Arrays, da diese natürlich wesentlich performanter sind, bei der oben beschrieben Logik stoße ich jedoch an die Grenze meiner Kenntnisse. Basics wie das vermeiden von "Select" usw. wurden natürlich schon berücksichtigt! :-)
Ich hatte den Plan die erste Tabelle in "arr1", dann daraus "arr2" dynamisch aufbauen. Wahrscheinlich funktioniert dies mit der dynamischen dimensionierung über "Redim" nicht. :-(
Hat jemand eine guten Vorschlag, wie die ohne Kopie/Paste direkt in den Tabellen umsetzen kann?
Im Anhang eine Stark vereinfachte Darstellung mit Vorher und Nachher.
https://www.herber.de/bbs/user/127502.xlsx
Bitte um Eure Hilfe.
Vielen Dank vorab. :-)