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.

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)
Antworten 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)
Antworten Top
#3
Gelöscht.

Falsch gelesen.
Cadmus
Antworten Top
#4
(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?
Antworten 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)
Antworten 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
Antworten 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!
Antworten Top


Gehe zu:


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