![]() |
Betrifft: Zeilen vertikal sortieren und begrenzen
von: Paul-Werner Neiss
Geschrieben am: 22.10.2014 18:20:26
Hallo Gurus,
ich brauch einmal mehr Eure Hilfe.
Ich habe eine Excel-Datei vorliegen mit über 300.000 Einträgen. Diese Einträge müssen wie folgt sortiert werden:
Die horizontale Kopfzeile muss pro nachfolgende Zeile einmal in die Spalte A sortiert werden. In die Spalte B kommt dann jeweils der Wert, welcher unter dem Eintrag in der Zeile A steht. Hat dieser Eintrag mehr als 72 Buchstaben, muss er aufgeteilt werden auf die folgenden Spalten.
Ein Beispiel, wie meine jetzige Liste aussieht, ist in der geladenen Datei in der Tabelle 1 zu sehen. In Tabelle 2 stehen ein paar Einträge, wie sie nach der Konventierung aussehen sollen.
https://www.herber.de/bbs/user/93296.xlsx
Ich bedanke mich jetzt bereits, viel Erfolg
Paul
![]() ![]() |
Betrifft: AW: Zeilen vertikal sortieren und begrenzen
von: Daniel
Geschrieben am: 22.10.2014 19:03:59
Hi
teste mal das:
Sub umformen() Dim anzZe As Long Dim anzSp As Long Dim shQ As Worksheet Dim shZ As Worksheet Dim i As Long Dim arrSpalten(100) Set shQ = Sheets(1) 'Quelltabelle Set shZ = Sheets(3) 'Zieltabelle With shQ.Cells(1, 1).CurrentRegion anzZe = .Rows.Count - 1 anzSp = .Columns.Count - 1 End With For i = 0 To UBound(arrSpalten) arrSpalten(i) = Array(i * 72, 4) Next shZ.Cells.Clear With shZ.Cells(1, 1).Resize(anzZe * anzSp, 2) .Columns(1).FormulaR1C1 = _ "=Index('" & shQ.Name & "'!R1,1,Mod(row()-1," & anzSp & ")+1)" .Columns(2).FormulaR1C1 = _ "=Index('" & shQ.Name & "'!C1:C" & anzSp & ",INT((ROW()-1)/" & _ anzSp & ")+2,Mod(row()-1," & anzSp & ")+1)" .Copy .PasteSpecial xlPasteValues shQ.Cells(1, 1).Resize(2, anzSp).Copy .PasteSpecial xlPasteFormats, Transpose:=True .Columns(2).TextToColumns Destination:=Range("B1"), _ DataType:=xlFixedWidth, _ FieldInfo:=arrSpalten, _ DecimalSeparator:="," .Columns(2).Copy .Columns(2).Resize(, .CurrentRegion.Columns.Count - 1).PasteSpecial xlPasteFormats .Columns(1).EntireColumn.AutoFit End With End SubGruß Daniel
![]() |