Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

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

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

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

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige