Trennen von Zellinhalten - Text in Spalten

Dieses Beispiel zeigt, wie Zellinhalte die sich fortlaufend in einer Zelle befinden getrennt werden können. Voraussetzung ist, dass die einzelnen Elemente durch ein beliebiges Trennzeichen separiert wurden, siehe Abbildung 1.


Abb. 1

Wenn Daten z. B. von einer Webseite oder anderen Quellen kopiert werden, kann es zu dieser Darstellung kommen. Wenn mit den kopierten Daten allerdings weitergearbeitet werden sollen, müssen diese zunächst in einzelne Zellen aufgeteilt werden.

Dazu bietet Excel den Standardbefehl Daten / Datentools / Text in Spalten. Mit diesem Befehl kann der Zellinhalt wie gewünscht in einzelne Zellen aufgeteilt werden. Wenn der Befehl für die Zelle A4 ausgeführt wird, steht in B4 der Wert 1, in C4 der Wert 5, in D4 der Wert 9 usw. Mit dieser Methode lassen sich alle Elemente, die sich in einer Zelle befinden, wunderbar in einzelne Zellen überführen.

Wenn es allerdings darum geht, viele Zeilen auf diese Weise zu trennen, kann es mit dieser manuellen Methode ganz schön aufwändig werden.

Mit Hilfe des folgenden VBA-Makros lässt sich dies aber weitgehend automatisieren. Das Makro liest Zelle für Zelle beginnend in A4 bis zu A7, um anschließend jedes Element der jeweiligen Zelle auszulesen und ab Zelle C4 in die Ergebnisspalte einzutragen.

Sub Zellinhalt_trennen()
'** Trennen von Zellinhalten an einem vorgegebenen Trennzeichen

'** Dimensionierung der Variablen
Dim lngZ As Long
Dim strTeilstring()   As String
Dim strTrennzeichen As String

'** Vorgaben definieren
Set wsakt = ThisWorkbook.Sheets("Daten")
lngZ = 4 'Startzeile
strTrennzeichen = ";" 'Trennzeichen festlegen z.B. Komma(,) Semikollon(;) Bindestrich(-) etc.

'** Durchlaufen aller Datenzeilen
For x = 4 To 7

  '** Teilstring am Delimiter auslesen
  strTeilstring = Split(Trim(wsakt.Cells(x, 1).Value), strTrennzeichen)
      
  '** Durchlaufen des gesamten Arrays einer Zelle vom ersten bis zum letzten Wert
  For a = LBound(strTeilstring) To UBound(strTeilstring)
    
    '** Array-Elemente nacheinander eintragen
    wsakt.Cells(lngZ, 3).Value = Trim(strTeilstring(a))
    
    '** Zeilenzähler erhöhen
    lngZ = lngZ + 1
      
  Next a

Next x

End Sub

Das Ergebnis sehen Sie in Abbildung 2.


Abb. 2

Nach Ausführung des Makros wurde jeder einzelne Wert der Zellen A4 bis A7 ausgelesen und ab Zelle C4 nacheinander eingetragen.

Wenn im Datenbereich ein anderes Trennzeichen, als im Beispiel das Semikolon verwendet wird, kann dies ganz einfach im VBA-Code geändert werden. Erfassen Sie dazu einfach in dieser VBA-Zeile ein anderes Trennzeichen, z. B. das Komma.

strTrennzeichen = "," 'Trennzeichen festlegen z.B. Komma(,) Semikollon(;) Bindestrich(-) etc.

 

Relevante Artikel

  • Zeilen (Einträge) abhängig vom Datum löschen

    Aus diesem Datenbestand sollen die Zeilen gelöscht werden, deren Datum in Spalte A im Monat November liegt.     A B C D 1 12.08.2002 daten daten daten 2 15.08.2002 daten daten daten 3 20.08.2002 daten daten daten 4 12.09.2002 daten daten daten 5 15.09.2002 daten daten daten 6 20.09.2002 daten daten daten 7 12.10.2002 daten daten daten 8 15.10.2002 daten daten daten 9 20.10.2002 daten daten daten 10 15.11.2002 daten daten daten 11 15.11.2002 daten daten daten 12 15.11.2002 daten daten daten 13 15.11.2002 daten daten daten 14 12.12.2002 daten daten daten 15 15.12.2002 daten daten daten 16 20.12.2002 daten daten daten Nach...

  • Anzahl der markierten Zeilen ermitteln

    Wenn Sie wissen möchten, wieviele Zeilen gerade markiert sind, dann hilft Ihnen dieses Makro weier.  Die Anzahl der Zeilen...

  • Grafiken (Bilder) über eine Wenn-Abfrage einfügen

    Das folgende Makro fügt abhängig vom Inhalt der Zelle A1 eine Grafik ab der Zelle D1 ein. Steht in A1 die Ziffer 1, so...

  • Unikate in eigene Spalte extrahieren

    Mit diesem Makro werden alle nicht doppelten Daten aus Spalte A in Spalte B geschrieben. Jeder Wert wird also maximal...

  • Absolute in relative Zellbezüge umwandeln und umgekehrt

      Die folgenden Makros wandeln vorhandene Zellbezüge in absolute bzw. relative Bezüge um. Zur Umwandlung von relativen...

    Wir benutzen Cookies
    Ihre Zufriedenheit ist unser Ziel, deshalb verwenden wir Cookies. Mit diesen ermöglichen wir, dass unsere Webseite zuverlässig und sicher läuft, wir die Performance im Blick behalten und Sie besser ansprechen können. Cookies werden benötigt, damit technisch alles funktioniert und Sie auch externe Inhalte lesen können. Des Weiteren sammeln wir unter anderem Daten über aufgerufene Seiten, getätigte Käufe oder geklickte Buttons, um so unser Angebot an Sie zu Verbessern. Mehr über unsere verwendeten Dienste erfahren Sie unter „Weitere Informationen“. Mit Klick auf „Akzeptieren“ erklären Sie sich mit der Verwendung dieser Dienste einverstanden. Ihre Einwilligung können Sie jederzeit mit Wirkung auf die Zukunft widerrufen oder ändern.