Mehrzeiler in 1 Zelle → auf mehrere Zellen
(Zeilen) aufteilen
Mit AltEingabe können bekanntlich in einer Zelle mehrere Zeilen dargestellt werden. Wenn Sie diese Zelle so aufteilen wollen, dass in untereinander liegenden Zellen jeweils eine Zeile der ursprünglichen Zelle ausgegeben wird, dann bietet sich ein kleines Makro an. Sie positionieren den Cursor auf die zu splittende Zelle und rufen beispielsweise über AltF8 das Makro MehrZeiler auf. Die VBA-Prozedur prüft, ob überhaupt mehrere Zeilen in der Ausgangszelle sind und falls das so ist, wird auch noch eine Prüfung vorgenommen, ob auch genügend freie Zellen unterhalb vorhanden sind. Sind beide Bedingungen erfüllt, dann wird ab der ersten Zelle jede einzelne Zeile in die jeweilige Zelle geschrieben. Der alte Inhalt der mehrzeiligen Zelle ist dort verloren.
Hier nun der Code, welchen Sie hier als *.zip hier herunterladen können. Die gepackte Datei enthält eine *.txt und eine *.cls.
Option Explicit Sub MehrZeiler() 'Mehrere Zeilen in 1 Zelle -> mehrere Zellen Dim aZelle As Variant, Anz As Integer Dim rngFirstFree As Range, rng2Check As Range, c As Range Dim rng2Fill As Range Dim Abbruch As Boolean aZelle = Split(ActiveCell.Value, Chr(10)) Anz = UBound(aZelle) + 1 If Anz > 1 Then 'Mindestens 2 Zeilen 'Prüfung, ob Zeilen darunter frei sind With ActiveCell Set rngFirstFree = Cells(.Row + 1, .Column) End With Set rng2Check = Range(rngFirstFree, rngFirstFree.Resize(Anz - 1)) For Each c In rng2Check If Not IsEmpty(c) Then MsgBox "Der Zielbereich ist nicht (komplett) leer!", _ vbOKOnly + vbExclamation, "Abbruch ..." Abbruch = True Exit For End If Next c 'Nur wenn genügend freien Zeilen vorhanden sind If Not Abbruch Then Range(ActiveCell, ActiveCell.Resize(Anz)) = _ WorksheetFunction.Transpose(aZelle) End If End If End Sub
Wie fast immer in unseren Musterlösungen und Code-Schnipseln gilt die Regel, dass Übersichtlichkeit, Transparenz und Verständlichkeit des Codes Vorrang vor einigen zehntel Sekunden Geschwindigkeitsgewinn hat.
Falls Sie den Code per Hand in ein Modul Ihres WorkBooks einfügen, dann empfiehlt sich jenes Arbeitsblatt als Speicherort zu verwenden, wo der Code auch laufen soll. Alternativ geht auch DieseArbeitsmappe als Speicherort. Die *.cls-Datei ist so ausgelegt, dass der Code in die Mappe mit dem Namen Tabelle1 eingefügt wird. – Sollen Zellen mit Inhalten mit oder ohne ohne Nachfrage überschrieben werden, dann ändern Sie den Code entsprechend ab oder senden Sie uns eine entsprechende Mail, damit wir (bzw. unser Sponsor) den Code anpassen.
Bitte beachten Sie die Hinweise bezüglich des Copyrights im Kopfbereich der gespeicherten Dateien. Danke.
[NachObenLetzte Verweis=„CS: Mehrzeiler in 1 Zelle”]