Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellinhalt auf mehrere Zeilen aufteilen

Zellinhalt auf mehrere Zeilen aufteilen
10.01.2019 09:44:24
Flo
Hallo zusammen,
ich sitze gerade vor einem Problem bei Excel und komme bei einem Teilproblem nicht richtig voran.
Es geht um eine Tabelle, die sich über mehrere Spalten und Zeilen erstreckt. In einer Spalte befinden sich Nummern, die jeweils mit dem Buchstaben A beginnen. In manchen Zellen stehen allerdings zwei Nummern, die mit einem "/" getrennt sind. Sollte dies der Fall sein, muss die zweite Nummer in die nächste Zeile, d.h. es müsste eine neue Zeile eingefügt werden, in die die zweite Nummer nach dem Slash eingefügt wird. In der darauffolgenden Spalte müssen ebenfalls zwei Zahlen getrennt werden. Daraufhin bleibt aber der Zeileninhalt erhalten und ist für beide Zeilen gleich.
Ich habe eine Beispieldatei erstellt und hoffe, dass es damit anschaulicher wird. Ich suche hierfür einen Code, damit Excel dies für mich erledigt. Man kann doch bestimmt eine Schleife laufen lassen, die bei dem Slash-Zeichen Alarm schlägt oder?!
Bin für jeden Ansatz und jede Erklärung dankbar. Vielleicht schaffe ich es dann das nächste mal ohne Hilfe :)
Bei Rückfragen einfach melden.
https://www.herber.de/bbs/user/126634.xlsx
Vielen vielen Dank vorab und schöne Grüße
Flo
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellinhalt auf mehrere Zeilen aufteilen
10.01.2019 13:13:52
Daniel
Hallo Flo,
Probier mal ob das bei dir klappt. Erste Spalte muss die Spalte mit den A... Codes sein, also bitte alles andere (wie "vorher" in deinem Beispiel) löschen oder die Bezugsspalte anpassen.
Ist bestimmt umständlicher als es sein müsste aber funktioniert bei mir.
Grüße
Daniel M.
Sub Zellen_Aufteilen()
Dim Tabelle As Range, cell As Range
Dim Position(0 To 1) As Variant, ColumnAB As Integer
Dim ZuKopieren(0 To 1) As String, ZuLoeschen(0 To 1) As String, NeuerText(0 To 1) As String
Set Tabelle = ActiveSheet.UsedRange
For Each cell In Tabelle.Columns(1).Cells
If Not cell.Find("/") Is Nothing Then
For ColumnAB = 0 To 1
Position(ColumnAB) = InStr(1, cell.Offset(0, ColumnAB).Value, "/")
ZuKopieren(ColumnAB) = Mid(cell.Offset(0, ColumnAB), Position(ColumnAB) + 1)
ZuLoeschen(ColumnAB) = Mid(cell.Offset(0, ColumnAB), Position(ColumnAB))
NeuerText(ColumnAB) = Replace(cell.Offset(0, ColumnAB), ZuLoeschen(ColumnAB), "")
cell.Offset(0, ColumnAB) = NeuerText(ColumnAB)
Next ColumnAB
cell.Rows.EntireRow.Offset(1, 0).Insert (xlDown)
cell.Offset(1, 0) = ZuKopieren(0)
cell.Offset(1, 1) = ZuKopieren(1)
Range(cell.Offset(1, 2), cell.Offset(1, Tabelle.Columns.Count - 1)) = _
Range(cell.Offset(0, 2), cell.Offset(0, Tabelle.Columns.Count - 1))
Tabelle.Resize(Tabelle.Rows.Count, Tabelle.Columns.Count).Activate
End If
Next cell
End Sub

Anzeige
AW: Zellinhalt auf mehrere Zeilen aufteilen
12.01.2019 23:27:49
Flo
Der Wahnsinn! Funktioniert, wie ich es mir vorgestellt habe. Vielen Dank!
Versuche den Code mal zu verstehen...
Gruß Flo
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt auf mehrere Zeilen aufteilen in Excel


Schritt-für-Schritt-Anleitung

Um den Zelleninhalt auf mehrere Zeilen aufzuteilen, verwenden wir ein VBA-Makro. Folge diesen Schritten:

  1. Öffne Excel und lade die betreffende Tabelle.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  4. Kopiere den folgenden Code in das Modul:

    Sub Zellen_Aufteilen()
       Dim Tabelle As Range, cell As Range
       Dim Position(0 To 1) As Variant, ColumnAB As Integer
       Dim ZuKopieren(0 To 1) As String, ZuLoeschen(0 To 1) As String, NeuerText(0 To 1) As String
       Set Tabelle = ActiveSheet.UsedRange
       For Each cell In Tabelle.Columns(1).Cells
           If Not cell.Find("/") Is Nothing Then
               For ColumnAB = 0 To 1
                   Position(ColumnAB) = InStr(1, cell.Offset(0, ColumnAB).Value, "/")
                   ZuKopieren(ColumnAB) = Mid(cell.Offset(0, ColumnAB), Position(ColumnAB) + 1)
                   ZuLoeschen(ColumnAB) = Mid(cell.Offset(0, ColumnAB), Position(ColumnAB))
                   NeuerText(ColumnAB) = Replace(cell.Offset(0, ColumnAB), ZuLoeschen(ColumnAB), "")
                   cell.Offset(0, ColumnAB) = NeuerText(ColumnAB)
               Next ColumnAB
               cell.Rows.EntireRow.Offset(1, 0).Insert (xlDown)
               cell.Offset(1, 0) = ZuKopieren(0)
               cell.Offset(1, 1) = ZuKopieren(1)
               Range(cell.Offset(1, 2), cell.Offset(1, Tabelle.Columns.Count - 1)) = _
               Range(cell.Offset(0, 2), cell.Offset(0, Tabelle.Columns.Count - 1))
               Tabelle.Resize(Tabelle.Rows.Count, Tabelle.Columns.Count).Activate
           End If
       Next cell
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Drücke ALT + F8, wähle Zellen_Aufteilen aus und klicke auf Ausführen.

Jetzt wird der Zelleninhalt auf mehrere Zeilen aufgeteilt.


Häufige Fehler und Lösungen

  • Problem: Das Makro funktioniert nicht.

    • Lösung: Stelle sicher, dass du die richtige Spalte ausgewählt hast und dass die Zellen im erwarteten Format sind (mit einem Slash "/" getrennt).
  • Problem: Nach dem Ausführen des Makros bleiben die alten Werte stehen.

    • Lösung: Überprüfe den Code und stelle sicher, dass die Zellen korrekt angepasst werden.

Alternative Methoden

  1. Text in Spalten:

    • Wähle die Zelle aus, die den Text enthält.
    • Gehe zu Daten > Text in Spalten.
    • Wähle Getrennt und benutze "/" als Trennzeichen.
  2. Formeln:

    • Verwende die Funktion =TEXTSPLIT(A1, "/") (verfügbar in neueren Excel-Versionen), um den Text in mehrere Zellen aufzuteilen.

Praktische Beispiele

Angenommen, du hast in der Zelle A1 den Text "A123/A456":

  • Nach dem Ausführen des Makros wird A123 in A1 und A456 in A2 geschrieben, während andere Zellen in der Zeile kopiert werden.

Tipps für Profis

  • Nutze VBA-Kommentare, um den Code zu erläutern, was die Wartung erleichtert.
  • Experimentiere mit anderen Trennzeichen, um den Code an deine Bedürfnisse anzupassen.
  • Bei Verwendung von großen Datenmengen kann das Makro optimiert werden, um die Verarbeitungsgeschwindigkeit zu erhöhen.

FAQ: Häufige Fragen

1. Kann ich das Makro anpassen, um mehr als zwei Werte aufzuteilen? Ja, du kannst die Arrays und Schleifen im Code erweitern, um mehr Werte aufzunehmen.

2. Funktioniert das auch in Excel Online? Das Makro funktioniert nur in der Desktop-Version von Excel, da Excel Online keine VBA-Makros unterstützt.

3. Was passiert, wenn keine Slashs in den Zellen vorhanden sind? In diesem Fall bleibt der Zelleninhalt unverändert, und das Makro überspringt diese Zellen.

4. Wie gehe ich vor, wenn ich Zahlen aus einer Zelle in mehrere Zeilen aufteilen möchte? Die Vorgehensweise bleibt gleich; passe einfach die Trennzeichen und die Zellenreferenzen im Code an.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige