Microsoft Excel

Herbers Excel/VBA-Archiv

Überflüssige Zeilenumbrüche (Zeichen(10)) löschen

Betrifft: Überflüssige Zeilenumbrüche (Zeichen(10)) löschen von: Peter
Geschrieben am: 11.10.2014 08:23:59

Hallo liebe Profis,

habt jemand von euch eine Idee wie ich das per Formel lösen könnte?:

(per VBA geht es natürlich einfacher, aber das kann ich leider nicht benutzen da das Dokument später freigegeben werden muss und dann sind Ausführen von Makros nicht möglich)

ich habe Zellen in den Werte mit Zeilenumbrüchen eingetragen werden.
Oft werden dabei alte vorhandene Zellwerte kopiert und modifiziert.

es kommt dabei oft vor, dass dann die (nicht sichtbaren) Umbrüche am Anfang oder auch am Ende einfach nicht gelöscht werden.

Ich möchte aber diese Zelle dann weiter nutzen, wobei ich die Umbrüche zwischen den Texten logisch weiterverarbeite.
Nun suche ich nach einer Möglichkeit diesen Wert von diesen Umbrüchen (Zeichen(10)) zu bereinigen. (Glätten() oder Wechseln() kommt hier leider nicht in Frage)

Beispiel:
in Zelle A1 steht folgender Ausdruck:
"

1. ABCD
2. QWERTZ
3. LISMUF

"
in B1 sollen nun alle überflüssigen Zeichen(10) entfernt per Formel entfernt da stehen (d.h. 2x Umbrüche am Anfang und 5 Umbrüche am Ende müssen entfernt werden):

"
1. ABCD
2. QWERTZ
3. LISMUF
"
Im Grunde wäre es ganz einfach: für die vorderen Zeilenumbrüche, checken ob das erste Zeichen ein Zeichen(10) ist und dann den ganzen Wert per Teil() kürzen.
Analog für die hinteren.

Dazu müsste ich aber viele Schleifen einbauen und die Formel würde unübersichtlich lang werden. und die zu findende Anzahl der Umbrüche wäre begrenzt.
Meine Frage daher, ob es nicht eine Kürzere Formel dazu gibt, zum Beispiel per Matrixformel aber nur für eine Zelle, die egal wie viele Umbrüche vorn oder hinter dem Text stehen diese bereinigt?

Es wäre schön, wenn Mircrosoft eine Formelfunktion wie Glätten() für Leerzeichen, auch für die Umbrüche hätte.
Oder kennt ihr vielleicht eine oder habt ihr generell einen anderen Ansatz?

Gruß Peter

  

Betrifft: versuch es mit der Funktion =SÄUBERN(...) oT. von: Tino
Geschrieben am: 11.10.2014 10:24:17




  

Betrifft: AW: versuch es mit der Funktion =SÄUBERN(...) oT. von: Peter
Geschrieben am: 11.10.2014 12:09:13

Hallo Tino,
leider killt mir Säubern() alle Umbrüche, auch diese die den Text trennen

in meinem Beispiel wird aus
"


1. ABCD
2. QWERTZ
3. LISMUF





"

dass:
"
1. ABCD2. QWERTZ3. LISMUF
"
das Zeichen(10) zwischen den Texten soll stehen bleiben:
"
1. ABCD
2. QWERTZ
3. LISMUF
"
gibt es noch Ideen?


  

Betrifft: sonst kenn ich nur noch über VBA oT. (offen) von: Tino
Geschrieben am: 11.10.2014 12:37:45




  

Betrifft: AW: als Formel von: Daniel
Geschrieben am: 11.10.2014 13:28:44

Hi
Warum VBA?
Man kann da schon mit Glätten arbeiten, wenn man die Zeilenumbrüche mit dem Leerzeichen austauscht

1. Wechsle " " mit "_" (oder einem anderen, sonst im Text nicht vorkommenden Zeichen)w
2. Wechsle Zeichen10 mit " "
3. Glätte den Wert
4. Wechsle " " mit Zeichen10
5. Wechsle "_" mit " "

Als Formel
=wechseln(wechseln(glätten(wechseln(wechseln(A1;" ";"_");Zeichen(10);" "));" ";Zeichen(10));"_";" ")

Gruß Daniel


  

Betrifft: AW: als Formel von: Peter
Geschrieben am: 11.10.2014 13:57:12

Hallo Daniel,

coole Sache!
So etwas habe ich mir vorgestellt!
Manchmal ist man der Lösung (oder mindestens einer) so Nahe, aber man sieht es nicht....

Super danke Dir!!!

Gruß Peter


  

Betrifft: Die kürzeste wäre wohl folgd Formel mit ... von: Luc:-?
Geschrieben am: 12.10.2014 03:42:54

…2 UDFs aus dem Archiv (falls VBA möglich ist), Peter:
=MxJoin(Splitt(A1; ZEICHEN(10));ZEICHEN(10))
Dabei wird der Text zuerst bei allen Umbrüchen getrennt und dann wieder mit Umbruch verbunden, wobei die irrelevanten LeerWerte nicht einbezogen wdn.
Die PgmCodes sind in der Fml verlinkt!
Gruß+schöSo, Luc :-?


 

Beiträge aus den Excel-Beispielen zum Thema "Überflüssige Zeilenumbrüche (Zeichen(10)) löschen"