Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zeilen automatisch mit Makro ausschneiden und einfügen
#1
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]
Antworten Top
#2
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 ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste