Microsoft Excel

Herbers Excel/VBA-Archiv

Zeilen vertikal sortieren und begrenzen

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 Sub
Gruß Daniel


 

Beiträge aus den Excel-Beispielen zum Thema "Zeilen vertikal sortieren und begrenzen"