Clever-Excel-Forum

Normale Version: Zeilen automatisch mit Makro ausschneiden und einfügen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,
ich bin relativ neu in der Welt der automatisierten Excelbearbeitung und stehe direkt vor einem für mich unlösbaren Problem.
Ich habe im Prinzip Dateien mit nur zwei Spalten (A und B), aber dafür zB 100 mal 1024 Zeilen untereinander.
Nun will ich ein Makro schreiben, das automatisch Zeile 1025 bis 2048 aus Spalte B ausschneidet und in Spalte C einsetzt. Anschließend das selbe mit den nächsten 1024 Zeilen aus Spalte B, nur dieses mal in Spalte D und so weiter, so lange bis alle Zeilen in Spalten verschoben sind.

Bisher habe ich es so gemacht:

Range("B1025:B2048").Select
Selection.Cut
Range("C1").Select
ActiveSheet.Paste

Range("B2049:B3072").Select
Selection.Cut
Range("D1").Select
ActiveSheet.Paste

Range("B3073:B4096").Select
Selection.Cut
Range("E1").Select
ActiveSheet.Paste

usw.
Das funktioniert auch soweit, nur wäre es natürlich sehr viel besser wenn er automatisch in die Range Felder das richtige einsetzt: Also beim ersten Range: 1025:2048, dann beim nächsten 2049:3072 und immer in 1024er abschnitten so weiter, bis eben keine Zeilen mehr vorhanden sind.
Außerdem sollte er immer die Spalte Automatisch anpassen, also beim starten bei C1, dann D1, E1 und so weiter.

Kann da jemand helfen?  Blush

Vielen Dank schonmal im Vorraus! [Bild: clear.png]
Hallöchen,

reicht Dir eine "theoretische" Antwort?

Du könntest die zu kopierenden Bereiche in einer Schleife durchgehen, z.B.

For iCnt=1 to 3
Range("B" & iCnt*1024 & ":B" & (iCnt+1)*1024-1).Copy Cells(1,icnt+2)
Next

Am Ende löschst Du die Einträge in Spalte B.  

Wenn Du die Schleife mit 1 beginnst, geht das Kopieren in Zeile 1024 bis 2047 los. Brauchst Du 1025 bis 2048, nimmst Du vorne eins dazu statt hinten eins weg Smile
Beim Ausdruck Cells ist die zweite Zahl die Spalte...

Statt der 3 nimmst Du entweder eine andere feste Zahl, die Deinem Datenbereich entspricht, oder Du lässt es Excel anhand der letzten gefüllten Zelle in Spalte B berechnen ...