Zusammengebauter Mehrzeiler

Hallo liebe RagTime-Gemeinde,

Ich steh grad auf dem Schlauch:

Ich möchte einen Mehrzeiler in einer Rechenblattzelle zusammenbauen aus verschiedenen Zellen (mit Text) eines anderen Rechenblatts, also prinzipiell so:

Teilnehmer!$A$1&', '&Teilnehmer!$B$1&', '&Teilnehmer!$C$1

Zwischen der ersten und der zweiten Komponente soll aber kein ", " stehen, sondern ein Zeilenumbruch. "\n" statt ", " hat leider nicht zum gewünschten Erfolg geführt. Auch ähnliche Versuche waren nicht vom Erfolg gekrönt. Bei der Forumsuche hab ich auch nichts Vergleichbares gefunden.

Außerdem soll Teilnehmer!$A$1 fett gedruckt sein. Ich hab's versucht mit Text(Teilnehmer!$A$1;'[em]'), wobei "em" als Schriftformat vorliegt - Ich hör, wenn ihr lacht!!!

Hilfe! (:-|
Steffen

Re: Zusammengebauter Mehrzeiler

#9414 On 9 April, 2010 19:01 Steffen said,

Ihr seid Spitze!

Vielen Dank!!!

Steffen

Re: Zusammengebauter Mehrzeiler

#9411 On 9 April, 2010 18:23 Bernhard Storch said,

Hallo Steffen,

ich habe tatsächlich gelacht - über deinen letzten Satz!
Falls die Daten in den Ursprungszellen bereits wie gewünscht formatiert sind, würde folgende Formel genügen:
#A1&#B1&Zeichen(13)&#C1
Wenn nicht, unter der Annahme, dass einer Zelle Z1 ein fett gedrucktes Format zugewiesen wurde:
#Z1&A1&#B1&Zeichen(13)&#C1

Gruß, Bernhard Storch

Re: Zusammengebauter Mehrzeiler

#9410 On 9 April, 2010 16:59 Mathias Milchmeyer said,
Re: Zusammengebauter Mehrzeiler Hallo Steffen,

Habe im Moment leider nicht viel Zeit, die genaue Formelsyntax nicht im Kopf und RagTime gerade nicht bei, daher nur in Stichpunkten eine Antwort.


Steffen schrieb am 09.04.2010 17:31 Uhr :

Ich möchte einen Mehrzeiler in einer Rechenblattzelle zusammenbauen aus verschiedenen Zellen (mit Text) eines anderen Rechenblatts, also prinzipiell so:

Teilnehmer!$A$1&', '&Teilnehmer!$B$1&', '&Teilnehmer!$C$1

Zwischen der ersten und der zweiten Komponente soll aber kein ", " stehen, sondern ein Zeilenumbruch. "\n" statt ", " hat leider nicht zum gewünschten Erfolg geführt.

Probier hier mal “Zeichen(13)”

Außerdem soll Teilnehmer!$A$1 fett gedruckt sein.

Dazu brauchst Du eine Zelle, z.B.$Z$1 , in der Fettschrift bereits vorhanden ist, und verwendest zum Beispiel SetzeZelle( $A$!;“Teilnehmer...&(Format!#$Z$1)) - Schreibweise nicht sicher! -

Der Trick liegt in dem #, mit dem Du aus Z1 nur das Format holst.

Ich hoffe, das hilft Dir bereits weiter, falls nicht , schreibe ich morgen ausführlicher.

Viel Erfolg
wünscht Mathias Milchmeyer

Re: Zusammengebauter Mehrzeiler

#9412 On 9 April, 2010 18:35 Thomas Kaegi said,

Hallo Steffen

Angenommen, die Teilnehmer stehen schön untereinander in Spalte A deines Rechenblattes, so werden sie mit folgender Formel in der Zelle mit dem Mehrzeilertext mit dazwischenliegendem Verbindungstext aneinandergehängt:

Verbinden(Zeichen(11);A:A)

Zeichen(11) erzeugt "Neue Zeile", Zeichen(13) wäre "Absatzende".

Wenn einzelne Teilnehmer in dieser Spalte bereits fett ausgezeichnet sind und so in den Mehrzeilertext übernommen werden sollen, dann musst du deine Formel nur mit dem #-Zeichen ergänzen:

Verbinden(Zeichen(11);#A:A)

Aber aufgepasst! So lange in keiner der Zellen mit den Teilnehmern der Wert ändert, wird die Formel nicht neu berechnet. Ein Änderung des Stils von Teilnehmer 1 reicht somit nicht (Stiländerung ist keine Wertänderung), um eine Neuberechnung des Mehrzeilertexts auszulösen.

In der Erweiterung "Martin's PowerFunctions" gibt es die Funktion "FormatAnwenden", die eine entsprechende Schriftvorlage voraussetzt. Damit liesse sich auch eine Formel bauen, mit welcher die Auszeichnung mit fettem Stil von einer Markierung in einer zweiten Spalte abhängig gemacht werden kann.

Allerdings geht's auch ohne diese Funktion. Wenn in Spalte A die Teilnehmer normal stehen, in Spalte B die gleichen gleichen Teilnehmer, jedoch fett, und in Spalte C diejenigen, die fett in den Text eingefüllt werden sollen, mit 1 markiert sind, so stellt folgende Formel in Zelle D1 den Mehrzeilertext entsprechend zusammen, sobald in Zelle E1 eine 1 gesetzt wird (ohne diese Verriegelung ist die Formel ein ewiger "Selbstläufer" und blockiert RagTime).

Wenn(E1;SetzeZelle("";E1)&VSuchlauf(A:C;LfdZelle≠"";0;
SetzeZelle(Wenn(LfdIndex>1;#D1&Zeichen(11))&Wenn(Spaltenwert(3);Index(#B:B;LfdIndex);Index(#A:A;LfdIndex));D1)))

Neben der Verriegelung mit Zelle E1 ist an dieser Formel zu beachten, dass erst von der zweiten Zeile an der bisherige Text mit dem Verbindungstext und dem neuen Teilnehmer (mit richtigem Format) kombiniert wird - in der ersten Zeile wird nur der erste Teilnehmer mit dem richtigen Format in die Zielzelle eingesetzt. Der hinzugefügte Text muss mit der Index-Funktion dazugefügt werden, denn mit "Spaltenwert" kann das Format nicht mit # übernommen werden.

Gruss, Thomas

Re: Zusammengebauter Mehrzeiler

#9415 On 10 April, 2010 15:49 Thomas Kaegi said,

Die gestern gelieferte Formel lässt sich noch etwas vereinfachen (Stilwahl statt mit "Wenn" mit einer Indexfunktion nach Zeile und Spalte):

Wenn(E1;SetzeZelle("";E1)&VSuchlauf(A:C;LfdZelle≠"";0;
SetzeZelle(Wenn(LfdIndex>1;#D1&Zeichen(11))&Index(#A:B;LfdIndex;Spaltenwert(3)+1);D1)))

Die doppelten Anführungszeichen für Text sind in meiner DE-CH-Version von RagTime erforderlich, in der DE-Version sind stattdessen einfache zu verwenden. Ich habe die Formel in Zelle F1 gesetzt. Der Text wird in Zelle D1 (die natürlich als Mehrzeiler formatiert sein muss) zusammengestellt. Der Zeilenumbruch in der Formel muss natürlich entfernt werden - er ist nur eingefügt, um die Formel im Forum vernünftig darzustellen. Der Text wird neu berechnet, sobald die Zelle E1 auf 1 gesetzt wird. Das kann mit einem Knopf mit SetzeZelle-Befehl gemacht werden.

Gruss, Thomas

Re: Zusammengebauter Mehrzeiler

#9413 On 9 April, 2010 18:40 Thomas Kaegi said,

Beim Durchlesen bemerke ich eine Unklarheit in meiner eben geschickten Anleitung. Nicht die letzte Formel soll in Zelle D1 stehen, sondern in dieser Zelle wird der Text zusammengefügt. Die Formel kann irgendwo im gleichen Rechenblatt stehen.

T