Clever-Excel-Forum

Normale Version: Inhalte einer Zelle automatisch in neue Zeile
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich habe eine Artikelliste mit über 8500 Positionen bei der zugehörige Typen leider nicht einzeln aufgelistet sind, sondern getrennt durch Leerzeichen in einer Zelle.


[
Bild bitte so als Datei hochladen: Klick mich!
]

Ich bräuchte jedoch für usere WaWi folgende Form:



[
Bild bitte so als Datei hochladen: Klick mich!
]


Gibt es dafür eine Funktion oder muss ich tatsächlich die gesamte Liste per Hand bearbeiten?

Grüße
Markus

Tabelle ist jetzt im Anhang!
Hi,

lad bitte eine Beispieltabelle (keine Bilder) hoch. https://www.clever-excel-forum.de/Thread...ng-stellen
Danke für die Info, Tabelle ist jetzt oben im Beitrag eingefügt
Hi ozelot007,

im Tabellenblatt IST, Spalte Typ ist ebenfalls ein Leerzeichen bei "Typ 1".
Ein Versehen oder tatsächlich so vorkommend?


Code:
Typ 1 Typ2 Typ3
Hallo Mase,

nein, das ist ein Versehen. Sollte natürlich ohne Leerzeichen sein.
nicht schön, aber selten:
Code:
Sub Split4oze()
    Dim wksQuelle As Worksheet: Set wksQuelle = Sheets("IST")
    Dim wksZiel As Worksheet:   Set wksZiel = Sheets("SOLL")
    Dim lngZielRow As Long
    Dim lngRow As Long
    Dim sArr() As String
   
    'Debug.Print Now()
    lngZielRow = wksZiel.Range("A1048576").End(xlUp).Row + 1
    With wksQuelle
            For lngRow = 2 To .Range("A1048576").End(xlUp).Row
                sArr() = Split(wksQuelle.Cells(lngRow, 2), " ")
                    'arr(0)
                    wksZiel.Cells(lngZielRow, 1) = wksQuelle.Cells(lngRow, 1)
                    wksZiel.Cells(lngZielRow, 2) = sArr(0)
                    wksZiel.Cells(lngZielRow, 3) = wksQuelle.Cells(lngRow, 3)
                    wksZiel.Cells(lngZielRow, 4) = wksQuelle.Cells(lngRow, 4)
                    'arr(1)
                    wksZiel.Cells(lngZielRow + 1, 1) = wksQuelle.Cells(lngRow, 1)
                    wksZiel.Cells(lngZielRow + 1, 2) = sArr(1)
                    wksZiel.Cells(lngZielRow + 1, 3) = wksQuelle.Cells(lngRow, 3)
                    wksZiel.Cells(lngZielRow + 1, 4) = wksQuelle.Cells(lngRow, 4)
                    'arr(2)
                    wksZiel.Cells(lngZielRow + 2, 1) = wksQuelle.Cells(lngRow, 1)
                    wksZiel.Cells(lngZielRow + 2, 2) = sArr(2)
                    wksZiel.Cells(lngZielRow + 2, 3) = wksQuelle.Cells(lngRow, 3)
                    wksZiel.Cells(lngZielRow + 2, 4) = wksQuelle.Cells(lngRow, 4)
                    ReDim sArr(3)
                    lngZielRow = lngZielRow + 3
            Next
    End With
    'Debug.Print Now()
End Sub

Man geht davon aus:
.) Datensicherung vorhanden
a) Tabellenblatt IST
b) Tabellenblatt SOLL
c) in IST!Spalte2 der 3xTyp durch Leerzeichen getrennt
Hallo Markus, mit Power Query ist das kein Problem (ohne Formel, ohne VBA - und dynamisch)... Power Query ist ein Add-In ab XL2016 in XL integriert und ab XL2010 nicht immer aber ab XL2013 von der Microsoft-Seite herunterladbar... Es sind drei Schritte nötig. Tabelle nach Power Query laden. Spalte nach Trennzeichen teilen (Aufteilen in Zeilen) und Ergebnis wieder nach XL laden...

[attachment=24753]
Hi Jörg,

gelöscht - hatte falschen Weg genommen.
Sehr gut, besten Dank für die Antworten! Ich konnte es mit Power Query lösen!