Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Text im Zeilenumbruch auf mehrere Zeilen

Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 10:49:03
Stefan
Hallo zusammen, habe ne sehr langweilige und Zeit intensive Arbeit bekommen die anscheinend noch öfters anstehen wird.
Wir haben eine bestimmte Zeilenbreite vorgelegt bekommen wo sich ein Text befindet.
Dieser Text wird dann durch den Zeilenumbruch auf 2-4 Zeilen (In der Zelle) dargestellt.
Nun müssen wir diese Zeilen alle in darunterliegende Zellen kopieren...
Das sieht dann so aus:
zuerst in der Zelle mit Zeilenumbruch
________________
|Hallo mein |
|Name ist |
|Stefan |
|_______________|
und es soll dann jede zeile im eine separate Zeile kommen
____________
|Hallo mein |
____________
|Name ist |
____________
|Stefan |
____________
Kann man das mit einer Formel/Formatierung oder einem VBA Code i.wie beschleunigen oder ist man gezwungen das manuell zu machen?
Danke und Gruß,
Stefan

Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 10:59:26
Fennek
Hallo Stefan,
in vba kann man die eine Zelle (z.B. A1) mit Tx = split(cells(1,1), chr(10)) aufspalten. Die Anzahl der Zeile in dieser Zelle wird mit Anz = ubound(tx) +1 bestimmt.
Wenn man Anz neue Zeilen einfügt, kann man das gewünschte Ergebnis erhalten.
mfg

AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 11:00:24
Daniel
Hi
das kann man mit VBA sicherlich automatisieren.
allerdings müsste man dann schon genauer wissen, wie die Tabelle aussieht, beispielsweilse, ob unterhalb der Zelle noch Werte stehen und was mit diesen passieren soll (nach unten verschieben, überschreiben) und wie das aussehen soll, wenn in einer Zelle 3 Zeilen entstehen, und den Zellen daneben 4 Zeilen und in der nächsten 3 Zeilen.
die Grundfunktion für eine einzelne Zelle wäre folgendes:

dim arr
With Range("A1")
arr = worksheetfunction.Transpose(Split(.Value, vbLF))
.resize(.ubound(arr, 1) + 1, 1).Value = arr
End with
Gruß Daniel

Anzeige
AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 11:11:04
Stefan
Hallo Daniel.
Also die betroffenen Zellen befinden sich alle untereinander alle in Spalte D:D.
Die Zellen darunter sollten nicht überschrieben werden, die Zelle soll auf mehreren Zeilen nach unten verschoben werden.
Danke für die schnelle Antwort, viele Grüße,
Stefan

Anzeige
AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 11:21:56
UweD
Hallo
dann so...
Werden in F eingetragen. Kannst D ja dann noch löschen
Sub dgdg()
Dim Zelle, Sp%, arr, i%, j&
Sp = 4 ' SpalteD
With ActiveSheet
j = 1
For Each Zelle In .Columns(Sp).SpecialCells(xlCellTypeConstants, 2)
arr = Split(Zelle, Chr(10))
For i = 0 To UBound(arr)
.Cells(j, Sp + 1) = arr(i)
j = j + 1
Next
Next
End With
End Sub
Gruß UweD

Anzeige
AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 12:02:17
Daniel
Hi
probier mal das:
Sub test()
Dim arr
With WorksheetFunction
arr = .Transpose(Split(Join(.Transpose(Range(Cells(1, 4), Cells(1, 4).End(xlDown)).Value),  _
vbLf), vbLf))
End With
Cells(1, 5).Resize(UBound(arr, 1), 1).Value = arr
End Sub
das Funktionsprinzip ist folgendes:
die Werte werden in ein Array gelesen und dieses Array in ein 1-Dimensionales Array transformiert.
dann werden alle Zelltext zu einem Gesamttext mit dem Zeilenumbruch als Trennzeichen zusammengesetzt.
Dieser Gesamttext wird dann wieder am Zeilenumbruch in ein Array aufgebrochen und das Array in die Zellen zuückgeschrieben.
Gruß Daniel

Anzeige
AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 12:02:31
Daniel
Hi
probier mal das:
Sub test()
Dim arr
With WorksheetFunction
arr = .Transpose(Split(Join(.Transpose(Range(Cells(1, 4), Cells(1, 4).End(xlDown)).Value),  _
vbLf), vbLf))
End With
Cells(1, 5).Resize(UBound(arr, 1), 1).Value = arr
End Sub
das Funktionsprinzip ist folgendes:
die Werte werden in ein Array gelesen und dieses Array in ein 1-Dimensionales Array transformiert.
dann werden alle Zelltext zu einem Gesamttext mit dem Zeilenumbruch als Trennzeichen zusammengesetzt.
Dieser Gesamttext wird dann wieder am Zeilenumbruch in ein Array aufgebrochen und das Array in die Zellen zuückgeschrieben.
Gruß Daniel

Anzeige
Harte Zeilenumbrüche wdn wohl nicht vorhanden ...
08.06.2016 14:26:46
Luc:-?
…sein, wenn mit der Xl-Fktionalität (ZellEigenschaft) Zeilenumbruch gearbeitet wird, Stefan & all;
und selbst falls zusätzlich welche vorhanden sein sollten, stört das das nachfolgend gezeigte Vorgehen per Fmln mit UDFs nicht:
 ABC
1Text harte Umbrüche
2alpha beta gamma delta epsilon vau zeta eta theta iota 0
3TextAufteilg ZeilenLänge
4alpha beta 10
5gamma 5
6delta 5
7epsilon vau 11
8zeta eta 8
9theta iota 10
10C2:=CountOn(A2;ZEICHEN(10))
11A4:A9: {=GLÄTTEN(VSplit(TxRows(WECHSELN
12            (A2;" ";" ";3);11);ZEICHEN(10);;1))}
13C4:C9:=LÄNGE(A4)
Ich habe hier ein klein wenig vorkorrigieren müssen, damit die gleiche ZeilenAnzahl wie im Original herauskommt. Unterschiede liegen daran, dass sich Xl weitgehend am standard­geregelten Platzbedarf der Schriftzeichen lt Schriftart orientiert, was bei Proportional-Schriften nur schwierig mit einem Pgmm (hier die UDF TxRows) nachzubilden ist.
TxRows hat hier die Aufgabe, die fehlenden harten ZeilenUmbrüche dem Text hinzuzufügen, so dass mit VSplit genau an diesen Stellen getrennt wdn kann.
Es gibt noch andere Möglichkeiten (ohne TxRows), aber die sind ziemlich denk- und schreibaufwendig (zB UDF SplitVx).
Die benötigten UDFs sollten relativ leicht im Archiv über RECHERCHE zu finden sein (immer die aktuellste Version verwenden, zB Vs1.1 bei VSplit!).
Feedback nicht unerwünscht! Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Text im Zeilenumbruch auf mehrere Zeilen
08.06.2016 15:47:21
Daniel
Hi
wenn keine harten Zeilenumbrüche vorhanden sind sondern nur die, die durch die Spaltenbreite variabel erzwungen werden, gibsts noch die Möglichkeit die Zellen zu selektieren und die Excelmenüfunktion:
Start - Bearbeiten - Füllbereich - Blocksatz
anzuwenden.
der entsprechende VBA-Befehl lautet Range(...).Justify
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Text im Zeilenumbruch auf mehrere Zeilen umwandeln


Schritt-für-Schritt-Anleitung

  1. Zelle auswählen: Wähle die Zelle aus, die den Text mit dem Zeilenumbruch enthält.

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

  3. Neues Modul einfügen: Gehe zu Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Füge den folgenden Code ein, um den Text in mehrere Zellen zu kopieren:

    Sub TextInZeilenUmwandeln()
       Dim Zelle As Range
       Dim arr As Variant
       Dim i As Integer
       Dim j As Integer
    
       j = 1 ' Zähler für die Zelle in der Zielspalte
       For Each Zelle In Selection
           arr = Split(Zelle.Value, vbLf) ' Splitte die Zelle bei Zeilenumbrüchen
           For i = LBound(arr) To UBound(arr)
               Cells(Zelle.Row + i, Zelle.Column + 1).Value = arr(i) ' Kopiere in die nächste Spalte
           Next i
       Next Zelle
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro aus, indem du ALT + F8 drückst und das Makro auswählst.


Häufige Fehler und Lösungen

  • Fehler: Keine Zeilenumbrüche im Text.

    • Lösung: Stelle sicher, dass du den richtigen Zeilenumbruch (vbLf) verwendest und dass der Text tatsächlich Umbrüche enthält.
  • Fehler: Zielzellen werden überschrieben.

    • Lösung: Ändere den Code, um die Zielzellen entsprechend weiter unten zu verschieben.

Alternative Methoden

  • Excel Funktion: Nutze die Funktion Text in Spalten unter Daten, um den Text auf mehrere Zellen aufzuteilen. Wähle die Zelle aus, gehe zu Daten > Text in Spalten, wähle Getrennt und setze den Zeilenumbruch als Trennzeichen.

  • Formel verwenden: Verwende die Formel =WECHSELN(A1;CHAR(10);",") um die Zeilenumbrüche durch Kommas zu ersetzen und dann =TEXTVERKETTEN(", ";WAHR;B1:B3) um die Werte in einer Zelle zu kombinieren.


Praktische Beispiele

  • Beispiel 1: Wenn du in Zelle A1 den Text „Hallo“ in der ersten Zeile, „Mein Name ist“ in der zweiten und „Stefan“ in der dritten Zeile hast, kannst du den oben beschriebenen VBA-Code verwenden, um diese in die Zellen B1, B2 und B3 zu kopieren.

  • Beispiel 2: Du hast in Zelle A2 einen langen Text mit Absätzen und möchtest diesen verteilt auf mehrere Zeilen in Zelle B2 haben: Verwende die Formel =TEXTVERKETTEN(CHAR(10);WAHR;A2).


Tipps für Profis

  • Blocksatz in Excel: Wenn du Text in einer Zelle im Blocksatz haben möchtest, gehe zu Start > Ausrichtung > Blocksatz. Dies kann helfen, das Layout bei mehreren Zeilen zu verbessern.

  • Formatierung: Stelle sicher, dass die Zellen ausreichend hoch sind, um den gesamten Text anzuzeigen. Nutze AutoAnpassen für die Zeilenhöhe.

  • Schnellzugriff: Du kannst auch die ALT-Taste gedrückt halten und Enter drücken, um manuell einen Zeilenumbruch innerhalb einer Zelle zu erzeugen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Zeilen in einer Zelle erstellen?
Du kannst ALT + Enter drücken, um innerhalb einer Zelle einen Zeilenumbruch zu erzeugen.

2. Wie kann ich Text aus mehreren Zellen in eine Zelle mit Zeilenumbruch zusammenführen?
Verwende die Funktion TEXTVERKETTEN oder VERKETTEN, um die Texte aus mehreren Zellen zusammenzuführen und dabei den Zeilenumbruch als Trennzeichen zu nutzen.

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