Inhalte einer Zelle automatisch in neue Zeile
#1
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!


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 9,13 KB / Downloads: 14)
Top
#2
Hi,

lad bitte eine Beispieltabelle (keine Bilder) hoch. https://www.clever-excel-forum.de/Thread...ng-stellen
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#3
Danke für die Info, Tabelle ist jetzt oben im Beitrag eingefügt
Top
#4
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
Top
#5
Hallo Mase,

nein, das ist ein Versehen. Sollte natürlich ohne Leerzeichen sein.
Top
#6
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
[-] Folgende(r) 1 Nutzer sagt Danke an Mase für diesen Beitrag:
  • ozelot007
Top
#7
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...

   
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
[-] Folgende(r) 1 Nutzer sagt Danke an Jockel für diesen Beitrag:
  • ozelot007
Top
#8
Hi Jörg,

gelöscht - hatte falschen Weg genommen.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Top
#9
Sehr gut, besten Dank für die Antworten! Ich konnte es mit Power Query lösen!
Top


Gehe zu:


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