11.05.2020, 11:58 (Dieser Beitrag wurde zuletzt bearbeitet: 11.05.2020, 12:40 von Kuwer.)
Hallo zusammen, ich habe ein kleines Problem: Ich habe 108 Spalten mit jeweils 5 Werten untereinander, leider müssen die Spalten alle in einer Spalte untereinander angeordnet sein, ohne dass dabei die fünf Werte in jeder Spalte die Reihenfolge verlieren. Ich könnte das alles händisch kopieren, aber habe Angst, dass mir da leicht ein Felhler passieren könnte und muss das Ganze auch noch an weiteren gleich aufgebauten Spalten durchführen. Würde mich sehr freuen, wenn mir jemand weiterhelfen könnte... Danke schon im Voraus! Feli
Hallo, der Code kopiert die Werte und Formate des aktiven Blattes in ein neues Blatt.
Code:
Sub anordnen() Const startzeile = 2 'erster zu übertragender Wert Const zeilenanz = 5 'Anzahl der zu übertragenden Zeilen Dim zeile As Long, spalte As Long, NewBlatt As Object, Quellblatt As Object zeile = 1 spalte = 1 Set Quellblatt = ActiveSheet Set NewBlatt = ActiveWorkbook.Sheets.Add With Quellblatt While Not IsEmpty(.Cells(startzeile, spalte)) .Range(.Cells(startzeile, spalte), .Cells(startzeile + zeilenanz - 1, spalte)).Copy _ Destination:=NewBlatt.Cells(zeile, 1) spalte = spalte + 1 zeile = zeile + zeilenanz Wend End With End Sub
(11.05.2020, 12:38)AlterDresdner schrieb: Hallo, der Code kopiert die Werte und Formate des aktiven Blattes in ein neues Blatt.
Code:
Sub anordnen() Const startzeile = 2 'erster zu übertragender Wert Const zeilenanz = 5 'Anzahl der zu übertragenden Zeilen Dim zeile As Long, spalte As Long, NewBlatt As Object, Quellblatt As Object zeile = 1 spalte = 1 Set Quellblatt = ActiveSheet Set NewBlatt = ActiveWorkbook.Sheets.Add With Quellblatt While Not IsEmpty(.Cells(startzeile, spalte)) .Range(.Cells(startzeile, spalte), .Cells(startzeile + zeilenanz - 1, spalte)).Copy _ Destination:=NewBlatt.Cells(zeile, 1) spalte = spalte + 1 zeile = zeile + zeilenanz Wend End With End Sub
Danke! Wo muss ich das alles eingeben/reinkopieren?
12.05.2020, 04:23 (Dieser Beitrag wurde zuletzt bearbeitet: 12.05.2020, 04:23 von LCohen.)
=INDEX($2:$6;REST(ZEILE(A5);5)+1;ZEILE(A5)/5) reicht. Das zieht man halt auf 540 Zeilen.
=INDEX($2:$6;REST(SEQUENZ(5*108;;5);5)+1;SEQUENZ(5*108;;5)/5) schafft es ohne Ziehen (neues Excel erforderlich). Parameter 5 und 108 sind schön zu beziehen!