Problem mit Wiederfinden der Schriftfarbe

Hallo,

Meine Open Office Tabellenkalkulation, Version 3.3.0, läuft unter Windows 7 64bit.
Wenn ich markierten Text in einem Tabellenfeld mit Hilfe des Buttons „Schriftfarbe“ z.B. rot färbe (der Rest ist schwarz), der Schaltknopf diese Farbe „rot“ nur, wenn ich mit dem Cursor auf den roten Text klicke. Klicke ich bei den schwarzen Textstellen, zeigt der Schaltknopf schwarz.
Wie bringe ich dem Schaltknopf bei, daß er die Farbe anzeigen soll, die zuletzt gewählt wurde.
Praktischer Fall: Ich markiere in einer Zelle 3 Worte eines Satzes und färbe sie blau. Möchte ich in einer anderen Zelle ebenfalls 3 Worte eines Satzes blau färben, muß ich die Farbe neu wählen statt einfach auf den Schaltknopf mit der die bereits verwendeten Farbe zu drücken, wie ich das von Word oder Excel kenne.

Danke für Infos
Gruß
Günther

Wie bringe ich dem Schaltknopf bei, daß er die Farbe anzeigen
soll, die zuletzt gewählt wurde.

Hallo Günther,

ich habe das jetzt gelesen und antworte mal spontan was ich so denke.

Ich glaube du hast da schlechte karten.
Du hast Recht, grad geschaut, in OO wird sich die letzte Farbwahl nicht gemerkt wie in Excel.
Das ist halt so in OO *schulterzuck* glaub nicht daß es da Optionseinstellungen gibt wo man das ändern könnte.

Wäre das Problem in Excel so könnte ich mit Vba schon einiges machen.
Also die beiden Farbauswahlsymbole löschen und durch eigene ersetzen die sich die Farbauswahl merken.
D.h. du markierst dann einen Zellbereich , klickst darauf und der wird dann so gefärbt wie die letzte Farbe war.

Das gewaltigste, an sich unlösbare Problem, ist aber du möchtest da diese farbänderung während du in einer Zelle bist.
Zu diesem Zeitpunkt hat Vba aber keinerlei Zugriffsmöglichkeiten.
Das ginge erst wieder wenn du die Zelle verlassen hast.

In Excel könnte ich dir dann Code schreiben der reagiert wenn du in einer Zelle etwas eingibst.
Dann brauch ich klare Regeln was da in dem Text in welcher Farbe gefärbt werden soll, kein Thema.

Jetzt kommt leider dazu, in keiner der drei in OO möglichen programmiersprachen hab ich Ahnung :frowning:

Mein Fazit, vergiss es oder ein andrer hier hat eine Superlösung, ich seh grad keine.
Aber, quien sabe, in OO Basic habe ich nicht null Wissen sondern inzwischen mit viel Mühe schon 0,2% Wissen :smile:

Wenn Ideen kommen wie man das lösen könnte in OO, dann probiere ich das schon mit meinem Wissensniveau.

Gruß
Reinhard

Hallo Reinhard,

danke für Deine Antwort. Das mit dem Makro werde ich mir mal durch den Kopf gehen lassen. Meine Excel Makros funktionieren bei OO nicht, was ich immer schon mal abstellen wollte. Vielleicht ist jetzt der Zeitpunkt gekommen. Mit den Grundfarben umzugehen ist ja kein Problem, aber bei Mischfarben muß ich mir die RGB Nummern aufschreiben, um genau die Farbe auch in anderen Zellen umzusetzen.

Gruß
Günther

Hallo Günther,

danke für Deine Antwort. Das mit dem Makro werde ich mir mal
durch den Kopf gehen lassen. Meine Excel Makros funktionieren
bei OO nicht, was ich immer schon mal abstellen wollte.

? was genau meinst du mit „abstellen“?
Umschreiben nach OO-Calc Basic?
Ich hab leider kein Geld für Bücher zu OO basic. Ohne sowas geht sehr viel Zeit drauf nur dafür herauszufinden wie vertraute Objekte wie Blatt, zelle in OO Basic angesprochen/referenziert werden.
Jetzt mal das mit Sun.Beam weglassend.

So wie in OO selbst sind da teilweise gewaltige Unterschiede.
Excel:
Tabelle1!A1
Calc:
Tabelle1.A1

In Vba/basic ist das noch schlimmer.

Excel:
Doc=Thisworkbook
mysheet = Doc.Sheets( 1 )

Calc:
Doc = ThisComponent
mysheet = Doc.Sheets( 0 )

Vielleicht ist jetzt der Zeitpunkt gekommen. Mit den
Grundfarben umzugehen ist ja kein Problem, aber bei
Mischfarben muß ich mir die RGB Nummern aufschreiben, um genau
die Farbe auch in anderen Zellen umzusetzen.

Du hast dir eigene farben angemischt!?
In Excel hätte ich eine Mappe die dir die RGB Werte auflistet.
Klar mit Vba, läuft also nicht in Calc.

Gruß
Reinhard

Hallo Reinhard,

ich möchte mich nicht zu weit von der eigentlichen Fragestellung entfernen und über generelle Dinge zwischen MS und OO diskutieren, sonst wirft der Mod mich raus. Aber Deine Fragen beantworte ich gern:

Hallo Günther,

danke für Deine Antwort. Das mit dem Makro werde ich mir mal
durch den Kopf gehen lassen. Meine Excel Makros funktionieren
bei OO nicht, was ich immer schon mal abstellen wollte.

? was genau meinst du mit „abstellen“?

Kennst Du den Ausdruck nicht? Wenn ich das „abstellen“ möchte, heißt das, daß ich das Problem löse, beseitige, eben „abstelle“. Motor abstellen bedeutet ja auch: er läuft nicht mehr. Bei Problemen heißt das: es besteht nicht mehr.

Umschreiben nach OO-Calc Basic?

Du machst mir Mut. Ich dachte, etwas ändern an dem bestehenden Makro und schon funkt es. Nun gut, dem ist offenbar nicht so.

Ich hab leider kein Geld für Bücher zu OO basic. Ohne sowas
geht sehr viel Zeit drauf nur dafür herauszufinden wie
vertraute Objekte wie Blatt, zelle in OO Basic
angesprochen/referenziert werden.
Jetzt mal das mit Sun.Beam weglassend.

So wie in OO selbst sind da teilweise gewaltige Unterschiede.
Excel:
Tabelle1!A1
Calc:
Tabelle1.A1

In Vba/basic ist das noch schlimmer.

Excel:
Doc=Thisworkbook
mysheet = Doc.Sheets( 1 )

Calc:
Doc = ThisComponent
mysheet = Doc.Sheets( 0 )

Vielleicht ist jetzt der Zeitpunkt gekommen. Mit den
Grundfarben umzugehen ist ja kein Problem, aber bei
Mischfarben muß ich mir die RGB Nummern aufschreiben, um genau
die Farbe auch in anderen Zellen umzusetzen.

Du hast dir eigene farben angemischt!?

Was heißt mischen? Über die Option „weitere Farben --> benutzerdefiniert“ kannst Du doch jeder Farbe noch eine Änderung aufdrücken, das Rot etwas blauer oder etwas dunkler usw. Das nur anhand der Farbe zu wiederholen gelingt so gut wie nicht. Das geht dann nur über die RGB-Werte.
Hier (bei der gestellten Frage) ging es mir nur darum, mit einem Klick die Farbe auch woanders verwenden zu können, wie bei Excel oder Word möglich.

In Excel hätte ich eine Mappe die dir die RGB Werte auflistet.
Klar mit Vba, läuft also nicht in Calc.

Gruß
Reinhard

Gruß
Günther

Hallo Günther,

„abstelle“. Motor abstellen bedeutet ja auch: er läuft nicht
mehr. Bei Problemen heißt das: es besteht nicht mehr.

achso, du suchst Deinstallationsroutinen für alle Office-Versionen :smile:)) Zugegeben, danach sind die Probleme abgestellt *gg*

Umschreiben nach OO-Calc Basic?

Du machst mir Mut. Ich dachte, etwas ändern an dem bestehenden
Makro und schon funkt es.

Reine Basic-Anteile sind identisch. Problem sind die speziellen Codebefehle und Objektbezeichnungen u.v.m.

In Excel ermittelt man den RGB-Farbwert des Zellhintergrundes
von A1 mit:
MsgBox mySheet.Cells(1, 1).Interior.Color
in OOo Calc mit:
MsgBox mysheet.getCellbyPosition(0,0).CellBackColor

Von daher kannste abschätzen daß es mit hier und da paar kleinen Änderungen ggfs. nicht getan ist.

Vielleicht ist jetzt der Zeitpunkt gekommen. Mit den
Grundfarben umzugehen ist ja kein Problem, aber bei
Mischfarben muß ich mir die RGB Nummern aufschreiben, um genau
die Farbe auch in anderen Zellen umzusetzen.

Leider fand ich keinen StarBasic Codebefehl um z.B. in Spalte A die Zellen mit allen möglichen Farben (in der Auswahl wenn du auf das Symbol klickst, also die Farbpalette, in Excel sind das 56 farben, in OO weiß ich nicht) zu färben und dann in B,C,D die Werte für Ror, Grün, Blau hinzuschreiben. Dann würdest du dir das manuelle Aufschreiben ersparen.

Sofern OO da wie Excel ist so hat es eine feste Anzahl an Fraben die es gleichzeitig anzeigen kann. D.h. wenn du da dir eine Farbe selbst mischst so veränderst du nur eine bestehende farbe die es dann nicht mehr gibt.

Nachstehend ist Code der in einer Zelle (A1), den RGB-Farbwert ausliest und dann die Werte für Ror, Grün, Blau anzeigt.
StarBasic kennt zwar die Befehle red, gree, blue, aber bei den auskommentierten Codezeilen wird da immer 0 angezeigt egal welche Farbe A1 oder die schrift in A1 hat.
Irgednwas referenziere ich da noch falsch :frowning:

Hier (bei der gestellten Frage) ging es mir nur darum, mit
einem Klick die Farbe auch woanders verwenden zu können, wie
bei Excel oder Word möglich.

Ja, ist mir klar. Ginge es jetzt nur um die Zellfarbe einer Zelle könntest du dir behelfen indem du eine zelle per Symbol färbst, dann wenn du diese Farbe woanderst brauchst, diese zelle kopierst mit Strg+c, dann die neue Zelle markierst und über Inhalte einfügen nur das Format überträgst.

Ist aber eine miese Krücke wenn du nur die Farbe willst und sonst keine Formate.
Und mitten im Text einer Zelle einzelne Buchstaben färben geht so nicht *glaub*

Sorry, ich glaub was du vorhast geht max. mit fundierten StarBasic-kenntnissen um z.B. dieses Färbesymbol nachzubauen mit der gewünschten Funktionalität, also sich zuletzt gewählte Farben grundsätzlich zu merken und nicht nur pro Zelle.

Gruß
Reinhard

Sub Farbe
Doc = ThisComponent
mysheet = Doc.Sheets(0)
zelle=mysheet.getCellbyPosition(0,0)
'msgbox "red " & red(zelle.string) & chr(13) & "green " & green(zelle.string) & chr(13) & "blue " & blue(zelle.string)
'msgbox "red " & red(zelle.value) & chr(13) & "green " & green(zelle.value) & chr(13) & "blue " & blue(zelle.value)
FW=zelle.cellbackColor
Wert=FW
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Gruen = Wert Mod 256
Wert = (Wert - Gruen) / 256
Blau = Wert Mod 256
meintext= "Farbwert " &FW & chr(13) & chr(13)
meintext= meintext & "Rot " &Rot & chr(13)
meintext= meintext & "Gruen " &Gruen & chr(13)
meintext= meintext & "Blau " &Blau 
msgbox meintext
'zelle.backcolor=34
''zelle.cellbackcolor=34
End Sub

Grüezi Günther

Vielleicht ist jetzt der Zeitpunkt gekommen. Mit den
Grundfarben umzugehen ist ja kein Problem, aber bei
Mischfarben muß ich mir die RGB Nummern aufschreiben, um genau
die Farbe auch in anderen Zellen umzusetzen.

In Excel gibt es einen Format-Pinsel mit dem sich die Formatierungen einer Zelle auf eine andere 1:1 übertragen lassen.

Gibt es dies bei OO nicht in ähnlicher Weise ebenfalls?

Damit liesse sich doch dein Vorhaben relativ einfach ausführen.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Grüezi Günther nochmals

Als Nachtrag:

Den erwähnten Format-Pinsel gibt es in OO-Calc genau so auch - er nennt sich ‚Format übertragen‘.

Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -