Excel: Zeilenumbruch mit Verkettung herbeiführen?
Hallo,
ich habe mir folgende Verkettung gebaut:
=VERKETTEN(W2;W7;W10;W13;W18;W25;W30;W40;W3;W5; TEXT(JETZT(); "tt.MM.jjjj") & " " & TEXT(JETZT(); "hh:mm:ss"))
Diese Verkettung ist dynamisch von der Länge, da ich mir mit Kontrollkästchen Sätze zusammenbauen lasse. Diese können unterschiedliche Längen aufweisen.
Diese Verkettung wird anschließend in ein Programm kopiert, welche keine Zeilenumbrüche kennt, es sei denn 48 Zeichen werden erreicht, dann setzt er das nächste Wort automatisch in die neue Zeile.
Ich möchte allerdings, dass Excel immer nach einer gewissen Kette zB W13 auf 48 Zeichen auffüllt (mit Leerzeichen), damit es so aussieht als würde es schöne Zeilenumbrüche machen. Wie stelle ich das am Besten an?
3 Antworten
Auffüllen mit Leerzeichen nennt man Padding.
Es gibt von Haus aus keine Paddingfunktion.
Du müsstest es dir selber bauen. Wenn du zum Beispiel den Text in A1 auf 20 Zeichen mit Leerzeichen auffüllen willst, sähe es so aus:
=A1&WIEDERHOLEN(A1;20-LÄNGE(A1))
Nun hast du zwei Möglichkeiten. Entweder du bestimmst selbst, welche Zellen du verkettest, bis du die Auffüllung auf 48 vornimmst, mit dem Risiko, dass die Länge längst überschritten ist oder du musst eine Vorgruppierung der Zellen vornehmen, sodass du Blöcke erhältst, die unter 48 Zeichen haben, aber beim Hinzufügen der nächsten Zelle darüber kämen.
Wenn es kein wissenschaftliches Experiment sein soll, würde ich es mit Hilfszellen lösen. Du könntest zum Beispiel immer wenn beim Hinzufügen der nächsten Zelle der Wert 48 übersteigen würde, einen Gruppenzähler erhöhen oder direkt ab dort die Textkette neu beginnen.
In die Verkettung
Zeichen(10)
Einfügen
und bei den Zelleneigenschaften Textumbruch einstellen
Für dynamische Längen in VBA Message Boxen habe ich mal ein Makro geschrieben, was nach einer bestimmten Zeichenlängen (+/- X Zeichen) immer wieder einen Umbruch einbaut. Daher sehe ich eine Lösung per VBA als möglich an.
==
Ggf wäre es hilfreich den Inhalt, der Eignetlich in einer Zelle steht in eine Textbox zu referenzieren. Die Textbox auf "Blocksatz" einstellen mit eine Äquidistanz Schrift. Und ggf die Breite per Hand oder auch per VBA dynamisch anpassen.
Ich bin nicht mal sicher ob das per VBA (einfach) möglich sein wird. Es müsste jede einzelne Zelle in Verbindung mit einer / mehreren Zelle(n) abgefragt werden.
Das habe ich mir fast gedacht, ich bin mit meinem Methoden leider auch am Ende, danke trotzdem.
Nein, das hat nichts mit meiner Frage zu tun. Mir ist völlig bewusst wie ich in Excel einen Textumbruch erstelle. Hier geht es um eine gewisse Zeichenanzahl die ich durch Leerzeichen erreichen möchte, wenn diese nicht durch Text erreiche.