Hallo,
erstens wimmelt es in deinem Code von syntaktischen und
logischen Fehlern, aber dazu später. Erst wäre mal zu
klären, was du wirklich machen willst, weil sich deine
verbale Beschreibung von dem unterscheidet, was du dann
vermutlich in deinem Code tun willst.
Oben schreibst du, die Zeilen 9000-27000, 39000-57000 usw.
kopieren zu wollen (ich nehme deshalb an, dass du mit
Excel 2007 arbeitest, sonst wäre nix mit "usw.", weil
in vorherigen Versionen bei Zeile 65536 Schluss war).
Aber der erste Bereich, den du zum Kopieren festlegst,
geht von Zeile 4 (dz) bis 27004 (ez = dz + 27000).
Was ist denn nun richtig?
Ist es korrekt, dass für jeden Block von 18001 Zeilen
nur die ersten beiden Spalten kopiert werden sollen
(ds = 1, es = ds + 1)? Ist es weiterhin korrekt, dass
jeder Block in der Zieldatei auf ein eigenes Blatt
kopiert wird, und zwar jeweils ab Zelle B3? Und ist
es korrekt, dass das Makro in der Quelldatei steht?
Existiert die Zieldatei schon und enthält sie bereits
Daten? Wieviele Blätter enthält sie, und wie ist
sichergestellt, dass es genügend Blätter für alle ggf.
zu kopierenden Datenblöcke gibt? Anderenfalls könnte
man auch die Zieldatei per Code erzeugen und für jeden
Datenblock ein Blatt "on the fly" hinzufügen.
Letzte Frage: Sind Quell- und Zieldatei immer dieselben,
oder sollte der Benutzer eine Auswahl treffen können?
Wenn diese Fragen geklärt sind, könnte man darangehen,
deinen Code um- oder besser neu zu schreiben, das ist
nämlich einfacher...
Gruß
|