Zeichensatz-Format in gesonderter Zelle speichern

Liebe Ragtime-Gemeinde,

ich versuche gerade meine ToDo-Liste, in der Erledigtes in Grau gesetzt wird, abzuspecken. Weil ich den Text der jeweiligen Zeile im verdeckten Bereich nochmals (in Grau) gesetzt habe, der bei der Erledigung den Haupt-Text durch die SetzeZelle-Funktion austauscht, ist die Datei ziemlich aufgeblasen.

Das geht bestimmt einfacher. Ich meine mich zu erinnern, dass ich im Ragtime-Forum oder auf der Ragtime-Site einen Beitrag mit Beispielen gesehen habe, nach dem man das Zeichenformat in einer einzelnen Zelle vorhalten kann. Offensichtlich verwende ich den falschen Suchbegriff. Vielleicht kann mir hier jemand einen Tipp geben.

Ragtime 6.5 - Mac OS X.7

Mit besten Grüßen
Alexander

Re: Zeichensatz-Format in gesonderter Zelle speichern

#10807 On 5 Oktober, 2012 09:44 Thomas Kaegi said,

Hallo Alexander

Was du mit "vorhalten" meinst, weiss ich nicht - vielleicht weil dieses Verb in der Schweiz nicht in dem von dir verwendeten Sinn gebraucht wird. Sollte damit "vorgeben" gemeint sein, so gibt es zwei Lösungswege:

A - Der direkte Weg mit der Funktion "FormatAnwenden"

Die Formel ist leicht lesbar. Aber die Funktion "FormatAnwenden" gehört zur kostenpflichtigen RagTime-Erweiterung "Martin's Power Functions".

Zur Erläuterung: In einem Rechenblatt stehen in den Zellen B1 und B2 die Texte "Aufgabe 1"/"Aufgabe 2". In den Schriftvorlagen gibt es neben der Schriftvorlage "Standarschrift noch eine zweite, "Standrad rot", die nur durch "Rote Füllung" von der Vorlage "Standardschrift" abweicht. Folgende Formeln in den Zellen C1/C2 erzeugen in den Zellen D1/D2 die beiden Texte, den ersten in Standardschrift, den zweiten mit der Vorlage "Standard rot":

SetzeZelle(FormatAnwenden(B1;"Standardschrift");D1)
SetzeZelle(FormatAnwenden(B2;"Standard rot");D2)

B - Falls du "Martin's Power Functions" nicht installiert hast (was ich dir aber eigentlich sehr empfehlen würde, da diese Formelkollektion noch andere sehr nützliche Funktionen - eben Power Fuctions - umfasst), kann dir folgender Trick helfen:

Zusätzlich zu den Vorgaben im direkten Weg setze ich in Zelle A1 eine schwarze "1" und in Zelle A2 eine rote "1" (ob mit Schriftvorlage oder direkter Formatierung ist irrelevant).

In Zelle C1 setze ich die Formel:

SetzeZelle(Rechts(#A1&B1;Länge(B1));D1)

Was macht die Formel?

1. Mit #A1&B1 wird aus der Zelle A1 der Wert 1 übernommen (wegen des # samt Schriftformat) und mit dem Text in Zelle B1 verbunden. Der ganze so erzeugte Text erhält dadurch das Schriftformat der "1" in Zelle A1.

2. Mit der Funktion "Rechts" wird dieser Text wieder auf die Länge des Textes in Zelle "Bn" gekürzt und dabei die vorangestellte "1" gelöscht. Das Schriftformat wird dabei aber beibehalten.

3. Der so erzeugte Text wird samt Schriftformat in die Zelle D1 gesetzt.

Damit die Wirkung der Formel bestätigt wird, setze ich in Zelle C2 die analoge Formel:

SetzeZelle(Rechts(#A2&B2;Länge(B2));D2)

Hoffentlich hilfts!
Gruss, Thomas
ragtime-consult.ch

Re: Zeichensatz-Format in gesonderter Zelle speichern

#10809 On 5 Oktober, 2012 09:29 Mathias Milchmeyer said,
Die Funktion kann man auch mit SetzeZelle gut nutzen:

Beispiel als Auszug aus einer komplexeren Formel:
SetzeZelle(Wert(LfdZelle&(Format!#$C$3));F3:R3;LfdIndex)

Dabei wird innerhalb eines Suchlaufs aus dem Rechenblatt "Format" aus Zelle C3 die gewünschte Formatierung abgeholt und in F3 bis R3 gesetzt.
In Kombination mit "Wenn" kann man somit in Abhängigkeit von einer gewünschten Bedingung den Inhalt unterschiedlich formatieren.
(rot, wenn kleiner als zehn, grün, wenn größer als 100, sonst schwarz usw.)

ganze Formel:
HSuchlauf(F3:R3;1=1;0;Wenn(LfdZelle<>0 UND IstZahl(LfdZelle)=1;Wenn(LfdZelle<(U3+W3)/2;SetzeZelle(Wert(LfdZelle&(Format!#$A$3));F3:R3;LfdIndex);Wenn(LfdZelle>(V3+W3)/2;SetzeZelle(Wert(LfdZelle&(Format!#$C$3));F3:R3;LfdIndex);SetzeZelle(Wert(LfdZelle&(Format!#$B$3));F3:R3;LfdIndex))));'')

In F3 bis R3 wird jede zweite Zelle mit dem Inhalt von U3, V3 und W3 verglichen und bei einer Abweichung vom Mittelwert das Format entsprechend den Formatierungen der Zellen A3, B3 und C3 des Rechenblattes Format gesetzt.
(Formatierung kann dabei Schriftgröße, Farbe, Stil etc. sein)

 
--
Mit freundlichem Gruß in die Liste

Mathias Milchmeyer



Am 05.10.2012 um 10:41 schrieb Jürgen Schell:

Daraus kann man nun folgenden Trick konstruieren: Angenommen, Zelle A1 ist leer, hat aber die Einstellung Schriftfarbe rot. Zelle B1 enthält den Text »abc« ohne weitere Formatierung. Dann liefert »#A1 & B1« den rot gefärbten Text »abc« ab. (Eigenschaften wie fett und kursiv verhalten sich entsprechend.

Re: Zeichensatz-Format in gesonderter Zelle speichern

#10806 On 5 Oktober, 2012 09:40 Jürgen Schell said,

Wenn ich alles richtig verstehe, meinst du folgenden Trick (es ist ein Trick, nirgends komplett dokumentiert):

Eine RagTime-Referenz kann Formate übernehmen. Die Formel »A1« meint: nur den Inhalt von A1. Die Formel »#A1« dagegen meint: Inhalt und Format aus Zelle A1 übernehmen. Das ist soweit dokumentiert.

Daraus kann man nun folgenden Trick konstruieren: Angenommen, Zelle A1 ist leer, hat aber die Einstellung Schriftfarbe rot. Zelle B1 enthält den Text »abc« ohne weitere Formatierung. Dann liefert »#A1 & B1« den rot gefärbten Text »abc« ab. (Eigenschaften wie fett und kursiv verhalten sich entsprechend.

Gruß,

Jürgen
Jürgen

www.j-schell.de

Re: Zeichensatz-Format in gesonderter Zelle speichern

#10811 On 5 Oktober, 2012 10:17 Thomas Kaegi said,

Hallo Jürgen & Mathias

Das ist natürlich noch eleganter als mein Trick. Ich war mir nicht bewusst, dass ich so auch direkt das Format übernehmen kann. Danke für den Hinweis.

Trotzdem verwende ich lieber die Funktion "FormatAnwenden", weil die Formel dadurch leichter lesbar/interpretierbar ist.

Gruss, Thomas

Re: Zeichensatz-Format in gesonderter Zelle speichern

#10822 On 7 Oktober, 2012 02:07 AKoch said,

Liebe Mitstreiter,

erstmal ein Entschuldigung, dass ich mich jetzt erst melde. Ich bin gerade in Beijing und kam wegen sozialer Verpflichtungen in den letzten Tagen des Aufenthaltes nicht so leicht an meinen Computer.

Jedenfalls herzlichen Dank für die vielen Hinweise. Die kurze Variante (Verknüpfung der Zellinhalte durch "&") habe ich ausprobiert, was die Datei schon ein wenig abgespeckt hat. Seltsamerweise hebt mir diese Variante ein selbst bestimmtes Datumsformat (03.04.95) auf. Auch wenn ich dieses in die Zelle mit dem Zeichensatz-Format eingegebe, wird mir in der Ziel-Zelle das Standard-Datumsformat gesetzt. Ich probiere heute auf dem Rückflug ein wenig herum.

Mit besten Grüßen
Alexander

Re: Zeichensatz-Format in gesonderter Zelle speichern

#10824 On 7 Oktober, 2012 09:56 Thomas Kaegi said,

Hallo Alexander

Es ist mir nicht gelungen, auch noch das Werteformat in die "Trick-Variante" einzubauen. Eigenartigerweise hat es auch nichts gebracht, ein bestimmtes Werteformat in die Schriftvorlage einzubauen und das Ergebnis so zu beeinflussen. Aber vielleicht kommt da sonst jemand besser zurecht.

Deshalb komme ich zurück auf meinen in der ersten Antwort vom 4. Oktober angegebenen "direkten Weg", der aber Martin's Power Functions benötigt:

FormatAnwenden(FormatAnwenden(B1;Werteformat);Schriftvorlage)

erzeugt das gewünschte Ergebnis. Natürlich kann das auch in die SetzeZelle-Funktion eingebaut werden. In einem konkreten Beispiel:

SetzeZelle(FormatAnwenden(FormatAnwenden(B1;"3. April 1995");"Standard rot");D1)

wobei das verwendete Datumformat zu den in RagTime stets vorhandenen Werteformaten gehört und die Schriftvorlage "Standard rot" nur bezüglich Schriftfarbe von der Standardschrift abweicht.

Gruss, Thomas