Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
252to256
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
252to256
252to256
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datensatz kopieren dauert "ewig"

Datensatz kopieren dauert "ewig"
04.05.2003 17:24:53
Volker Croll
Hallo zusammen,

habe eine Arbeitsmappe erstellt mit der Artikelstammdaten verglichen und bearbeitet werden.

In Sheet1 werden aus einer Lieferantendatei alle lieferbaren Artikel eingelesen, in Sheet2 die bereits im Warenwirtschaftssystem vorhandenen Artikel dieses Lieferanten.

Danach werden datensatzweise die Artikel aus Sheet1 mit denen aus Sheet2 verglichen. Wenn dabei ein Artikel in Sheet2 nicht gefunden wird, also neu ist, wird dieser ins Sheet3 kopiert.

Wenn die Artikelnummer sowohl in Sheet1 als auch in Sheet2 vorhanden ist, werden alle Eintraege (28 zu jeden Artikel) verglichen. Werden dabei Abweichungen festgestellt, wird zunaechst der Datensatz aus Sheet1 ins Sheet4 kopiert, danach direkt darunter der entsprechende Datensatz aus Sheet2.

Im Einzelschrittmodus habe ich festgestellt, dass genau an dieser Stelle mein Problem sitzt. Aber nur wenn die Datei recht umfangreich ist (ca. 10 MB, 11.000 Datensaetze in Sheet1, 13.000 in Sheet2).

Dieses Kopieren dauert selbst auf einem 1,5 GHz PC bis zu einer Sekunde.

Wie ich kopiere, ob

Sh1.Range(Cells(Zeile1, 2), Cells(Zeile1, 29)).Copy
Sh4.Select
Cells(Zeile4, 2).PasteSpecial Paste:=xlValues

oder

Sh1.Range(Cells(Zeile1, 2), Cells(Zeile1, 29)).Copy Sh4.Cells(Zeile4, 2)

hat auf die Zeitdauer keine sruerbare Auswirkung.

Speicherproblem? Allerdings sind keine Festplattenzugriffe zu sehen.

Das Verhalten ist auf versch. PCs und sowohl unter Excel 97 also auch Excel 2000 das gleiche.

Hat jemand eine Idee?


Gruss Volker


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Datensatz kopieren dauert "ewig"
04.05.2003 19:50:28
Karl

Hallo Volker,

bis zu einer Sekunde! hast du sonst keine Probleme?

Viele Grüße Karl

Karl, was soll das ...
04.05.2003 19:59:31
Volker Croll

Hallo Karl,

danke fuer Deinen sehr "konstruktiven" Beitrag.

Wenn Du Dir die Muehe gemacht haettest, intensiv zu lesen und Dich in das Problem hineinzudenken, dann waere Dir aufgefallen, dass
1. dieses Verhalten nur bei sehr grossen Dateien auftritt; und das muss ja wohl einen Grund haben, und
2. eine Sekunde pro Datensatz bei ueber 10.000 Artikeln (bei vielen Unterschieden) zur einer Laufzeit von ueber einer Stunde fuehrt.

Gruss Volker

Re: Datensatz kopieren dauert "ewig"
04.05.2003 20:13:28
Otto

Hallo Volker,

Ich habe verschiedene Ideen dazu.
1. Hast Du genügend RAM?
2. Enthalten die 29 Spalten der Zeile nur Werte oder Formeln?
3. Beim Erzeugen von Sheet3 und 4 musst du immer wieder Excel neu erzählen, dass das Blatt weiteren Speicherplatz braucht. Du blähst die Mappe allso in kleine Schritten auf 10 MB au. Genau diese Platz-Allokation und ggf. -Relokation braucht Zeit. Erzeuge Doch immer im Tausender-Pack neue Zeilen, in dem Du einfach vor dem Schreiben nach AC5000 die Zellen AC5000-AC5999 mit 0 füllst. und bei AC6000 die Zellen AC6000-6999 usw.

Gruß Otto


Anzeige
Re: Datensatz kopieren dauert "ewig"
04.05.2003 20:28:07
Volker Croll

Hallo Otto,

zu 1.: je nach Arbeitsplatz 128 oder 256 MB; duerfte wohl nicht die Ursache sein,

zu 2.: nur Werte; wohl auch nicht das Problem. Du dachtest wohl an's Neuberechnen,

zu 3.: das scheint mir ein interessanter Ansatz. Werde damit mal experimentieren.


Fuer's erste vielen Dank!

Gruss Volker

Re: Datensatz kopieren dauert "ewig"
04.05.2003 21:34:10
Ramses

Hallo Volker,,

Von hinten durch die Brust ins Auge.
Ich weiss nicht wie du die Daten vergleichst, das ist aus dem Code-Schnipsel leider nicht ersichtlich.

Eine Variante:
Beide Dateien in ein Array einzulesen, und dann die beiden Array's vergleichen.
Das ist sicher um einiges schneller asl der normale zeilenweise Vergleich.


Andere Variante:
Kopiere beide Daten zusammen in ein neues Tabellenblatt und lass den Spezialfilter ohne Duplikate drüberlaufen.
Dann hast du nur die Daten die einmal vorkommen und kannst diese kopieren.
Sollte um einiges schneller gehen, als Zeile für Zeile vergleichen.

Gruss Rainer


Anzeige
Danke, aber Vergleichen ist nicht das Problem ...
04.05.2003 22:20:43
Volker Croll

... das geht tierisch schnell.

Hallo Rainer,

das ganze ist Teil eines recht umfangreichen Projektes. Versuche es kurz, aber trotzdem verstaendlich zu machen.

Erst wenn Unterschiede gefunden werden, verzweige ich in den If-Teil. Und nur genau bei der angegebenen Zeile wird's langsam. Diese fast 1 Sekunde tritt sogar mit dem F8-Einzelschritt auf. Und das verstehe ich nicht.

Die beiden Datensaetze muessen untereinanderstehen, weil dort in mehreren Spalten bearbeitet wird, welcher Wert (der alte oder der neue) dann wieder ins WWS uebernommen wird.

Wie beschrieben tritt dieses Phaenomen nur auf, bei diesen vielen Datensaetzen. Wenn's nur so rund jeweils 1.000 sind, geht auch das kopieren schnell.

Gruebel, gruebel ... Gruss Volker


Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige