Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1572to1576
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zelle mit mehreren Werten in neue Zeilen einfügen

Zelle mit mehreren Werten in neue Zeilen einfügen
22.08.2017 16:14:43
Ben
Hallo, habe hier im Forum schon viele tolle Lösungen gefunden und danke euch dafür! Leider habe ich ein Problem, was ich eigenständig nicht lösen kann.
Ich habe in einer Spalte (E) innerhalb einer Zelle mehrere Werte, die ich gerne voneinander trennen möchte. Die Werte sind innerhalb der Zelle mit Anführungszeichen getrennt.
z.B. eine Zelle beinhaltet: "Gegenstand_A"Gegenstand_B"Gegenstand_C
Die Gegenstände nach dem ersten sollen dann in neue Zeilen eingefügt werden. Also eine neue Zeile und jeweils nur ein Gegenstand drin.
Die Gegenstände sollen dann für die gesamte Spalte überprüft werden.
Vielen Dank schon mal :)

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Zelle mit mehreren Werten in neue Zeilen einfügen
22.08.2017 16:22:13
Hajo_Zi
schreibe sie doch in die folgenden Spalten. Daten, ext in Spalten.

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Also ich schreibe keine Beiträge mit dem Betreff "Gerne u. Danke für die Rückmeldung. o.w.T."
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
AW: Zelle mit mehreren Werten in neue Zeilen einf
22.08.2017 16:26:21
Michael
Hallo!
Daten stehen in E1:Ex, wobei x = letzte befüllte Zelle in E:E, Daten ohne Leerzellen.
Die Zelldaten werden untereinander in Spalte F:F aufgelistet:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets("Tabelle1")
Dim a, i&, b, j&
Application.ScreenUpdating = False
With Ws
a = .Range("E1:E" & .Cells(.Rows.Count, "E").End(xlUp).Row)
For i = LBound(a) To UBound(a)
b = Split(Mid(a(i, 1), 2), """")
For j = LBound(b) To UBound(b)
.Cells(.Rows.Count, "F").End(xlUp).Offset(1, 0) = b(j)
Next j
Next i
End With
Set Wb = Nothing: Set Ws = Nothing: Erase a: Erase b
End Sub
Den Namen des Tabellenblattes musst Du ggf. noch anpassen.
LG
Michael
Anzeige
AW: Zelle mit mehreren Werten in neue Zeilen einf
22.08.2017 16:51:55
Ben
Danke schon mal für den Code und er teilt schon mal korrekt auf.
Allerdings vermischen sich so die Daten, da in den anderen Spalten noch zugehörige Informationen sind.
Resulat:
         Spalte E                      Spalte F
Zeile 1: "Gegenstand_A"Gegenstand_B    Gegenstand_A
Zeile 2: "Gegenstand C                 Gegenstand_B (zugehörige Daten aber noch in Zeile 1)
Zeile 3:                               Gegenstand_C (zugehörige Daten aber noch in Zeile 2)
Hier würde ich gerne die Spalte E beibehalten (also kein Übertrag auf Spalte F) und den Gegenstand_B in Zeile 2 rutschen lassen, sodass Gegenstand_C in die dritte Zeile kommt. Also quasi ein Zeileneinfügen für jeden neuen Gegenstand, aber die Inhalte vor den Spalten E kann 1:1 übernommen werden.
Anzeige
Darum immer gerne mit Beispiel-Mappe...
22.08.2017 17:43:09
Michael
Ben,
...die aufzeigt, wie die Ausgangssituation und die gewünschte Zielsituation ist; dann kommt's zu keinem babylonischen Sprachgewirr ;-).
In diesem Fall so:
Sub a()
Dim Wb As Workbook: Set Wb = ThisWorkbook
Dim Ws As Worksheet: Set Ws = Wb.Worksheets("Tabelle1")
Dim c As Range, b, i&
Application.ScreenUpdating = False
With Ws
For Each c In .Range("E1:E" & .Cells(.Rows.Count, "E").End(xlUp).Row)
b = Split(Mid(c.Text, 2), """")
c = b(0)
For i = 1 To UBound(b)
.Cells(c.Row + i, c.Column).EntireRow.Insert
.Cells(c.Row + i, c.Column - 4) = .Cells(c.Row, c.Column - 4)
.Cells(c.Row + i, c.Column - 3) = .Cells(c.Row, c.Column - 3)
.Cells(c.Row + i, c.Column - 2) = .Cells(c.Row, c.Column - 2)
.Cells(c.Row + i, c.Column - 1) = .Cells(c.Row, c.Column - 1)
.Cells(c.Row + i, c.Column) = b(i)
Next i
Erase b
Next c
End With
Set Wb = Nothing: Set Ws = Nothing
End Sub
Blattname muss ggf. von Dir angepasst werden.
LG
Michael
Anzeige
AW: Darum immer gerne mit Beispiel-Mappe...
23.08.2017 10:43:36
Ben
Danke für deinen Beitrag! Nächstes mal lade ich direkt eine Mappe hoch, ist vermutlich einfacher :)
Bekomme beim Makro leider den Laufzeitfehler 9, Index außerhalb des gültigen Bereichs. Passiert in der Zeile "c = b(0)", sobald die erste Zeile mit mehreren Gegenständen gefunden wird.
AW: Darum immer gerne mit Beispiel-Mappe...
23.08.2017 11:11:47
Ben
Mein Versehen, hatte noch leere Zeilen in meinem Blatt, die durch ein anderes Makro davor noch aussortiert werden. Funktioniert soweit und ich bastel noch etwas rum.
Vielen vielen Dank!
Ok, super, freut mich! Danke f d Rückmeldung, owT
23.08.2017 11:27:26
Michael

375 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige