Spalten untereinander anordnen
#1
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


Angehängte Dateien
.xlsx   Spalten untereinander_Excelforum.xlsx (Größe: 19,06 KB / Downloads: 9)
Top
#2
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
Gruß der AlteDresdner (Win11, Off2021)
Top
#3
Gelöscht.

Falsch gelesen.
Cadmus
Top
#4
(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?
Top
#5
Hallo,
eh ich lange rumschreibe...


Angehängte Dateien
.xlsm   Spalten untereinander_Excelforum.xlsm (Größe: 22,53 KB / Downloads: 5)
Gruß der AlteDresdner (Win11, Off2021)
Top
#6
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
Top
#7
=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!
WIN/MSO schicken angeblich alle 5 Sekunden Deinen Screen heim zu Papa (recall-Klausel). 
Top


Gehe zu:


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