Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1408to1412
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
Zeilenumbruch aufheben
19.02.2015 15:26:54
Paul-Werner
Hallo Excelfreunde,
mal wieder ein kleines Problemchen (für mich) mit der Sortierung von Daten in Excel.
Ich habe Zellen, die meht als 70 Zeichen enthalten und darüber hinaus Zellen, die mehr als eine Zeile enthalten. Da könnte man zwar einfach den Zeilenumbruch aufheben, aber die Datei wird später als Text gespeichert und da werden die Zeilenumbrüche weider übernommen.
Also hätte ich gerne jede Zeile innerhalb einer Excelzelle in eine eigene Zelle geschrieben, da ich alledings nur 70 Zeichen weiter verarbeiten kann, muss der Rest in die nächte Zelle geschrieben werden.
In
Konnte ich das in Etwa erklären? Ich habe eine Beispieldatei geladen:
https://www.herber.de/bbs/user/95879.xlsx
Im Tab "IST" sind die Daten so, wie diese mir vorliegen, im Tab "SOLL" sind diese Daten, wie sie geändert werden sollen.
Danke und Grüße
Paul

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

Betreff
Datum
Anwender
Anzeige
Wäre das was für dich, ...
19.02.2015 19:18:20
Luc:-?
… Paul?
 ABCD
1Besitzeränderung lt. E-Mail Hr. Schmitt, E. vom 29.01.08 (Kist/29.01.08)Besitzeränderung lt. E-Mail Hr. Schmitt, E. vom 29.01.08 (Kist/29.01.08)
2Intervallverkürzung auf 2 Jahre lt. E-Mail Hr. Schmitt, E. vom 22.11.11/Kist 22.11.11Intervallverkürzung auf 2 Jahre lt. E-Mail Hr. SchmittE. vom 22.11.11/Kist 22.11.11#NV
3mit Preamplifier-Box SN41020/E03123
und 2 Magnetfeldsonden 0.16-0.8Tesla SN 3430-041/E10883
und 0.45-2,1Tesla SN 3430-010R/E10884
mit Preamplifier-Box SN41020/E03123und 2 Magnetfeldsonden 0.16-0.8Tesla SN 3430-041/E10883und 0.45-2,1Tesla SN 3430-010R/E10884
4    
5ZellFormeln: B1[…B3]:D1[…D3]: {=SplitVx(WECHSELN(A1;ZEICHEN(10);"|");{"|"." (".", "};{0.-1.1})}

Allerdings sollten, egal welches Pgm letztlich angewendet wird, die zusätzlichen TrennZeichen eindeutig sein (nicht 1× nach Komma vor _E. (_=LeerZeichen) trennen und 1× nicht). Anderenfalls kann man auch TrennZeichen, idR ZEICHEN(10), an passender Stelle bis zu einer vorgegebenen ZeichenAnzahl einsetzen und dann an diesen Stellen (zusätzlich) trennen. Eine Alternative könnte dann so aussehen:
 ABCD
11Besitzeränderung lt. E-Mail Hr. Schmitt, E. vom 29.01.08 (Kist/29.01.08)Besitzeränderung lt. E-Mail Hr. Schmitt, E. vom 29.01.08(Kist/29.01.08)#NV
12Intervallverkürzung auf 2 Jahre lt. E-Mail Hr. Schmitt, E. vom 22.11.11/Kist 22.11.11Intervallverkürzung auf 2 Jahre lt. E-Mail Hr. Schmitt,E. vom 22.11.11/Kist 22.11.11#NV
13mit Preamplifier-Box SN41020/E03123
und 2 Magnetfeldsonden 0.16-0.8Tesla SN 3430-041/E10883
und 0.45-2,1Tesla SN 3430-010R/E10884
mit Preamplifier-Box SN41020/E03123und 2 Magnetfeldsonden 0.16-0.8Tesla SN 3430-041/E10883und 0.45-2,1Tesla SN 3430-010R/E10884
14    
15ZellFormeln: B11[…B12]:D11[…D12]: {=Splint(TinLines(A11;56);ZEICHEN(10))}  
16 B13:D14: {=Splint(TinLines(A13;130);ZEICHEN(10))}  

Beides lässt sich mit den von mir verwendeten UDFs SplitVx, Splint und TinLines nur schwer unter einen Hut bringen, es sei denn, man verwendet eine KombiFml, die bei gefundenem ZEICHEN(10) Splint, sonst TinLines verwendet. Eine eigene SubProzedur nur dafür wäre für meinen Geschmack uU viel zu speziell, also ggf nur 1× benutzbar (falls so etwas nicht regelmäßig zu gleichen oder zumindest ähnlichen Parametern anfällt, was sich sonst kaum lohnen würde).
Die ersten beiden UDFs findest du unter RECHERCHE, die andere ist nicht im Archiv enthalten, dafür aber eine bessere, die evtl Text2Rows o.ä. heißt. Sie könnte auch in einer von mir vor Jahren zu einem Thread ähnlichen Themas hochgeladenen Datei enthalten sein. Suchen musst schon du, denn auch auf meinem PC wird sie aktuell nicht vorhanden sein und die gezeigte ist mit anderen Fktt eines AddIns derart verbunden, dass ihre Isolierung sinnlos wäre.
Übrigens stützen die gezeigten Textlängen von 72, 85, 129 deine Angabe >70 in Relation zu deiner WunschVorstellung nicht gerade, was man im 2.Bsp an der abweichenden Argumentierung von TinLines erkennen kann.
Ähnliche Themen wie deines kommen übrigens des Öfteren im Archiv vor. Du könntest also auch noch anderweitig fündig wdn.
Gruß, Luc :-?
Besser informiert mit …

Anzeige
AW: Wäre das was für dich, ...
19.02.2015 20:03:25
Paul-Werner
Hallo Luc,
Deine Beispiele sehen schon einmal sehr gut aus, ich werde das auf jeden Fall testen.
Danke Dir, ich melde mich wieder mit Ergebnissen.
Paul

AW: Zeilenumbruch aufheben
19.02.2015 21:17:35
Daniel
Hi
wenn es dir reicht, die Zellen beim Zeilenumbruch auf die rechte Nachbarzelle zu verteilen, dann
kannst du auch die Funktion DATEN - DATENTOOLS - TEXT IN SPALTEN verwenden.
Wähle im Schritt 1 "Getrennt" und gib im Schritt 2 bei Trennzeichen "Anderes" den Zeilenumbruch ein.
Den Zeilenumbruch gibst du ein, indem du die ALT-Taste gedrückt hälst und 010 auf dem Numblock tippst.
wenn du Textblöcke brauchst, die maximal 70 Zeichen lang sind und danach egal wo getrennt werden (auch mittem im Wort) dann kannst du ebenfalls TEXT IN SPALTEN verwenden.
Ersetze vorher den Zeilenumbruch mit der Ersetzen-Funktion durch ein Leerzeichen (Eingabe wider ALT+010).
Wende dann TEXT IN SPALTEN an, wähle diesmal "feste Breite" und füge im Schritt 2 alle 70 Zeichen einen Trennstrich ein.
wenn beides beachtet werden soll, dh neue Zelle bei Zeilenumbruch und keine Zelle mit mehr als 70 Zeichen, dann wirds komplizierter.
1. füge folgenden Code in ein allgemeines Modul ein:
Function TrennZeichen(txt As String, MaxLen As Long) As String
Dim Pos1 As Long, Pos2 As Long, PosNeu As Long
txt = Replace(txt, vbLf, "|") & "|"
Pos1 = 1
Do
Pos2 = InStr(Pos1, txt, "|")
If Pos2 = 0 Then Exit Do
If Pos2 - Pos1 > MaxLen Then
PosNeu = InStrRev(txt, " ", Pos1 + MaxLen)
If PosNeu > Pos1 Then
Mid(txt, PosNeu, 1) = "|"
Pos1 = PosNeu + 1
Else
txt = Left(txt, Pos1 + MaxLen - 1) & "|" & Mid(txt, Pos1 + MaxLen)
Pos1 = Pos1 + MaxLen + 1
End If
Else
Pos1 = Pos2 + 1
End If
Loop
txt = Replace(txt, " |", "|")
txt = Replace(txt, "| ", "|")
TrennZeichen = txt
End Function

dir steht jetzt die neue Excelfunktion "Trennzeichen" zur verfügung, welche in den Text bei Zeilenumbruch ein Trennzeichen | einfügt und wenn ein Teiltext länger als die vorgegebene Zeichenzahl ist
2. füge in die Spalte B folgende Formel ein: =Trennzeichen(A1;70) und kopiere sie soweit wie benötigt nach unten.
3. Kopiere die Spalte B und füge sie als Wert ein
4 Wende auf die Spalte B die Funktion TEXT IN SPALTEN an, mit "Getrennt" und dem "|" als Trennzeichen
Gruß Daniel

Anzeige
AW: Zeilenumbruch aufheben
20.02.2015 14:56:17
Paul-Werner
Hallo Luc, hallo Daniel,
ich habe bisher keines der beiden Beispiele zum Laufen gebracht.
Text in Spealten funktioniert wohl in dieser Form nicht auf dem Notebook, da ich hier keinen Nummernblock habe, das muß ich auf dem Desktop versuchen.
Luc's Formeln habe ich bisher noch nicht ans Laufen gebracht, ich habe diese in die Spalte B eingetragen, richtig?
Danke nochmals
Paul

AW: Zeilenumbruch aufheben
20.02.2015 15:12:49
Daniel
Hi
du kannst auch den Zeilenumbruch erstmal mit:
=Wechseln(A1;Zeichen(10);"|")
und dann Spalte kopieren und als Wert einfügen
durch ein Zeichn ersetzen, welches du über die Tastatur einfügen kannst.
(oder du suchst mal, wie du Zeichen über den ASCII-Code auf deinem Rechner einfügen kannst.
Gruß Daniel

Anzeige
AW: Zeilenumbruch aufheben
21.02.2015 15:08:02
Paul-Werner
Hallo Daniel,
danke für Deine Hilfe. Das mit dem Text in Spalten funktionier einwandfrei (auch auf'm Notebook, richtig schauen lohnt sich :))
Die Formatierung in 70 Zeichen bekomme ich in einem zweiten Schritt hin
DAnke und Grüße
Paul

Ohne die verwendeten UDFs aus dem Archiv ...
20.02.2015 19:30:43
Luc:-?
…herauszusuchen und dann ihren PgmCode in ein allgemeines Modul des VBA-Projekts deiner Mappe einzusetzen, wird das auch nie fktionieren, Paul;
für das 1.Bsp die neuere Version von SplitVx verwenden. Für das 2.Bsp könnte die Suche nach der zu TinLines adäquaten UDF* im Archiv langwierig wdn, weil die möglicherweise in einem UpLoad enthalten ist und deshalb in der Recherche nicht gefunden wird (bei mir steht sie auf einer zZ stillgelegten bzw gar einer defekten HD). Allerdings kann man das ggf auch mit Standard-XlFktt lösen.
* Benutzerdefinierte Fkt (UserDefined Function)
Luc :-?

Anzeige
AW: Ohne die verwendeten UDFs aus dem Archiv ...
21.02.2015 15:10:08
Paul-Werner
Hallo Luc,
danke auch für Deine Hilfe. Ich denke, Daniels Ansatz war heute für mich der bessere, weil einfacher.
Trotzdem nochmals vielen Dank für Deine Antworten, ich lerne immer dazu.
Viele Grüße
Paul

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige