Clever-Excel-Forum

Normale Version: Spalten untereinander anordnen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
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
Gelöscht.

Falsch gelesen.
(11.05.2020, 11: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?
Hallo,
eh ich lange rumschreibe...
Hallo,

oder mit einer Formel:
(analog der Formel von Peter in diesem Beitrag: https://www.clever-excel-forum.de/Thread...r-anordnen )

=WENNFEHLER(INDEX($A$2:$DD$6;REST(ZEILE(A1)-1;5)+1;(ZEILE(A1)-1)/5+1);"")

=> Formel nach unten kopieren.

Gruß
Fred
=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!