Excel - Zelleninhalte auf zwei Spalten verteilen und je Wert neue Zeile anlegen, Wert aus A beibehalten
Hallo VBA-Künstler
Ich komm mit Excel-Bordmittel nicht weiter und müsste wohl auf ein VBA-Skript oder so setzen. Nur verstehe ich davon zuwenig. Mit der Aufzeichnungs-Sache hab ich schon ein paar sachen hin gekriegt, dass die Tabelle nun so aussieht:
Aber nun müssen die einzelnen Einträge in Spalte B (B enthält alle Gruppen mit dazugehörigem Recht, Jede Gruppe ist mittels | getrennt und jedes Recht von der Gruppe mit ; getrennt. B kann auch leer sein) auf einzelne Zeilen verteilt werden. Dabei muss der Wert aus Spalte A erhalten bleiben.
D.h. am Ende muss je Gruppe eine neue Zeile angelegt werden, wobei Spalte A dann der Pfad, Spalte B die Gruppe und Spalte C das dazugehörige Recht enthält.
Am Ende in etwa so:
Angehängt noch eine Beispieldatei. Die definitive Datei enthält rund 1000 Zeilen, wobei diese Variabel sind, mal mehr, mal weniger.
Edit: sorry, scheinbar kann ich nur Bilder hochladen...
Danke für eure Hilfe.
Ich komm mit Excel-Bordmittel nicht weiter und müsste wohl auf ein VBA-Skript oder so setzen. Nur verstehe ich davon zuwenig. Mit der Aufzeichnungs-Sache hab ich schon ein paar sachen hin gekriegt, dass die Tabelle nun so aussieht:
Aber nun müssen die einzelnen Einträge in Spalte B (B enthält alle Gruppen mit dazugehörigem Recht, Jede Gruppe ist mittels | getrennt und jedes Recht von der Gruppe mit ; getrennt. B kann auch leer sein) auf einzelne Zeilen verteilt werden. Dabei muss der Wert aus Spalte A erhalten bleiben.
D.h. am Ende muss je Gruppe eine neue Zeile angelegt werden, wobei Spalte A dann der Pfad, Spalte B die Gruppe und Spalte C das dazugehörige Recht enthält.
Am Ende in etwa so:
Angehängt noch eine Beispieldatei. Die definitive Datei enthält rund 1000 Zeilen, wobei diese Variabel sind, mal mehr, mal weniger.
Edit: sorry, scheinbar kann ich nur Bilder hochladen...
Danke für eure Hilfe.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 548700
Url: https://administrator.de/forum/excel-zelleninhalte-auf-zwei-spalten-verteilen-und-je-wert-neue-zeile-anlegen-wert-aus-a-beibehalten-548700.html
Ausgedruckt am: 21.04.2025 um 05:04 Uhr
4 Kommentare
Neuester Kommentar

Quelldaten auf Blatt 1, Ergebnis landet dann auch Blatt 2
Sub SplitteZellen()
With Sheets(1)
For Each cell In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
Set rngOut = Sheets(2).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
cell.Copy Destination:=rngOut
If cell.Offset(0, 1).Value <> "" Then
arrGroups = Split(cell.Offset(0, 1).Value, "|", -1, 1)
For i = 0 To UBound(arrGroups)
rngOut.Offset(0, (i * 2) + 1).Resize(1, 2).Value = Split(arrGroups(i), ";", 2, 1)
Next
End If
Next
End With
End Sub

Ach so dann hab ich das falsch verstanden, aber kein Problem
Sub SplitteZellen()
With Sheets(1)
Set rngNext = Sheets(2).Range("A2")
For Each cell In .Range("A2:A" & .Cells(Rows.Count, "A").End(xlUp).Row)
rngNext.Value = cell.Value
If cell.Offset(0, 1).Value <> "" Then
arrGroups = Split(cell.Offset(0, 1).Value, "|", -1, 1)
For i = 0 To UBound(arrGroups)
rngNext.Value = cell.Value
rngNext.Offset(0, 1).Resize(1, 2).Value = Split(arrGroups(i), ";", 2, 1)
Set rngNext = rngNext.Offset(1, 0)
Next
Else
Set rngNext = rngNext.Offset(1, 0)
End If
Next
End With
End Sub