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

Performance bei insert und delete unter 365

Performance bei insert und delete unter 365
21.01.2019 13:50:28
Burkhard
Hallo miteinander,
hat irgendjemand eine Erklärung (oder besser noch: eine Lösung) für folgendes Verhalten:
.Rows(iRow + 1).Insert Shift:=xlDown
.Rows(iDel).Delete
Unter Office 2007 werden diese Befehle in "Nullkommanichts" (heißt: im Schnitt in ein bis zwei Hunderstelsekunden) abgearbeitet. Unter Office 365 brauchen dieselben Befehle auf demselben Rechner im Schnitt 6 bis 7 Sekunden (!!).
In beiden Umgebungen läuft derselbe Code, d.h. so grundlegende Dinge wie ScreenUpdating, EnableEvents, Calculation etc. sind hier wie dort abgeschaltet. Am Code als solchem kanns also nicht liegen.
Hat sich an der Behandlung von Befehlen, die das "Nachrutschen" von darunterliegenden Zeilen auslösen, mit Excel 365 etwas Grundlegendes geändert?
Alle Ideen, Vermutungen und natürlich Lösungsvorschläge sind willkommen!

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Fragen
21.01.2019 14:08:40
lupo1
wiederholt getestet?
gleiche Datei?
Datei "hinten-unten" aufgeräumt, also .usedRange = .CurrentRegion?
sonst keine Datei geladen?
Stimmt xl2007 als Vergleich? Bei xl2003 und davor wäre es sofort verständlich.
AW: Antworten
21.01.2019 15:55:50
Burkhard
Hallo Lupo1,
alle Fragen (evtl. mit Ausnahme von "sonst keine Datei geladen" - aber statistisch vernachlässigbar, da mehrere Dutzend Tests durchgeführt wurden; wovon man allerdings ausgehen kann: es dürfte wohl in allen Fällen Outlook geöffnet gewesen sein) sind mit "JA" zu beantworten. Gleiche Datei heißt ja z.B. auch, dass '"hinten-unten" aufgeräumt' für beide gleichermaßen zutrifft. Falls NICHT aufgeräumt (bei beiden), würde Office 365 hier ja anders reagieren als die Vorgängerversionen - kannst du das bestätigen?
Ich persönlich bin mir sicher, Office 2007 installiert zu haben. Bei Kollegen könnte das evtl. nicht zutreffen. Inwiefern wäre das bei 2003 anders? (Nur aus Neugierde - die Abweichung 2007 - 365 ist ja Fakt.)
Anzeige
Weil ...
21.01.2019 17:37:41
lupo1
... aufgrund des kleineren Modells xl2000 bei mir 10x schneller ist, als xl2010. Mittlerweile bin ich bei Office 365, habe aber xl2000 weiterhin an einem XP-Rechner.
Das Einfügen/Löschen von Zeilen ist in Makros jedoch auch nicht der Weisheit letzter Schluss (obwohl möglich), sondern Sortieren bzw. Filtern.
AW: Alternativen?
22.01.2019 10:52:11
Burkhard
Dass der "geerbte" VBA-Code nicht der Weisheit letzter Schluss ist, habe ich schon mitbekommen. Trotzdem scheue ich mich, an dieser zentralen Stelle massiv in die Ablauflogik einzugreifen (und das wäre in diesem Fall notwendig), nur weil 365 hier ein Performanceproblem hat!
Wenn es eine einfachere Lösung gibt: immer her damit!
Anzeige
AW: Alternativen?
22.01.2019 11:08:08
Daniel
Hi
einfachere Lösungen zu finden ohne in die Ablauflogik einzugreifen ist schwierig.
ein Problem beim Löschen von Zeilen ist, dass Excel alle geöffneten Dateien daraufhin überprüfen muss, ob diese Formeln, Namen, bedingte Formatierungen oder Gültigkeitsregeln enthalten, welche sich auf die gelöschte Zeille beziehen und deren Zellbezug dann angepasst werden muss.
solltest du mehrere Zeilen haben, die gelöscht werden müssen und die Formelanpassung nicht erforderlich ist, könntest du auch die zu löschendend Zeilen in einer Hilfsspalte mit 0 kennzeichnen und alle Zeilen die stehenbleiben müssen, mit der aktuellen Zeilennummer. (geht auch per Formel)
dann kannst du die Zeilen über die Funktion DATEN - DATENTOOLS - DUPLIKATE ENTFERNEN löschen, welches auch bei größeren Datenmengen sehr schnell ist, beim Duplikate-Entfernen die oben beschriebene Prüfung nicht durchgeführt wird.
Gruß Daniel
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige