Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1916to1920
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

VBA Abarbeitungsgeschwindigtkeit

VBA Abarbeitungsgeschwindigtkeit
30.01.2023 08:02:34
Marco
Hallo,
ich habe mal ein Paar allgemeine Fragen zu Excel / VBA.
Ich habe in VBA ein Skript geschrieben, das recht umfangreich ist.
Es geht hier um 13.000 (Zeilen) Datensätze mit jeweils 50 Spalten.
Eine Stückliste mit Artikeln und deren Eigenschaften.
1. Ich importiere die Daten von einem Programm.
2. Diese Daten sind jetzt in dem ersten Tabellen Blatt enthalten.
3. Ich bearbeite diese Daten und mache aus diesen Artikellisten, Stücklisten für ein ERP System.
Es werden pro Zeile in vielen Felder zusammen gesetzt aus Kopf -und Artikeldaten.
Da ich jede Zeile bearbeiten muss mit einer For i Schleife, dauert es ca. 3 Minuten.
Das ist schon sehr lang.
Zum Skript:
Ich arbeite immer mit .Range , da ja die Daten schon in dem Tabellenblatt enthalten sind.
Wie kann man hier Optimierungen machen.
Besser alles in ein Array, Bibliothek oder etwas ähnliches?
Was gibt es generell für Punkte auf die man achten sollte bei VBA um eine bessere Performens zu kriegen?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Abarbeitungsgeschwindigtkeit
30.01.2023 08:40:54
Tobi@s
Bernd Held macht vieles über Arrays und dann "in einem Rutsch" in die Tabelle schreiben.
AW: VBA Abarbeitungsgeschwindigtkeit
30.01.2023 09:00:34
Daniel
Hi
Die erste Regel ist, dass du vermeiden solltest, Zellinhalte einzeln per Schleife zu bearbeiten, sondern Zellinhalte immer möglichst gemeinschaftlich in einem Arbeitsgang zu verändern.
Das kopieren der Inhalte in ein Array um dort die Schleife durchzuführen ist nur eine möglichkeit, weitere wären das Nutzen der vorhanden Excelfunktionalitäten zur Bearbeitung, wie die Menüfunktionen Ersetzen, Text in Spalten, Duplikate Entfernen, Inhalte auswählen, usw; oder die Verwendung von Formeln in Hilfsspalten.
Die zweite Regel wäre, dass man schauen sollte, ob bestimmte Aemrbeitssxhritte sich nicht durch geschickte Sortierung optimieren lassen, bspw ist ein SVerweis in sortierten Daten um Welten schneller als in unsortierten Daten. Oder beim Löschen von Zeilen dauert das Löschen von 1000 Zeilen als geschlossener Block genauso lange wie das Löschen einer Zeile, löscht man Zeilen einzeln oder man hat keinen durchgehenden Block, dann dauert es entsprechend länger.
Außerdem wäre zu überlegen, ob die Arbeit mit VBA gemacht werden muss oder ob nicht moderne Bearbeitungsmethoden wie PoweQuery (oder wie immer das in 365 genannt wird) verwendet werden können.
Gruß Daniel
Anzeige
AW: VBA Abarbeitungsgeschwindigtkeit
30.01.2023 09:18:32
Rudi
Hallo,
Wie kann man hier Optimierungen machen.
wie soll man das sagen, wenn man da Projekt nicht kennt?
Gruß
Rudi
AW: VBA Abarbeitungsgeschwindigtkeit
30.01.2023 12:50:28
uwe
...ich scheine bei einem ähnlichen Problem zu hängen (Frage : .... beschäftigt ...)
array´s sind mir böhmische Dörfer. Kann mir bitte jemand einfach verständliche und frei verfügbare Literatur-Tips geben?
AW: VBA Abarbeitungsgeschwindigtkeit
02.02.2023 07:53:33
Marco
Guten Morgen Danke euch.
Keine Ahnung warum hier so eine Stimmung herrscht wenn ich in zwei Foren nachfrage.
Meine Idee war es, die Excel Lokal Formeln zu entfernen, denn aktuell arbeiten wir damit, leider ist das fehleranfällig, das die Lokalen Formeln immer zerstrört worden sind.
Die Idee, ich wollte das mit einem Skript sicherer machen, aber jetzt auf Kosten der Geschwindigkeit.
AW: VBA Abarbeitungsgeschwindigtkeit
02.02.2023 11:30:30
Daniel
Stell dir vor, du bist Pizzaliefereant und jemand bestellt eine Pizza bei dir.
In der Wohnung angekommen macht niemand auf, aber du siehst durch das Fenster, dass dein "Kunde" schon eine Pizza von einem anderen Lieferanten ißt.
Würde dich das ärgern?
Wenn ja, kennst du die Antwort auf deine Frage.
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige