Seite 1 von 1

gelöst: Farbe bei bedingter Formatierung auslesen

Verfasst: So, 05.01.2020 14:05
von erikafuchs
Hallo Leute
ein schönes Neues Jahr wünsche ich und habe schon wieder mal eine originelle Frage:
Wie man die Farbe einer Tabellenzelle ausliest weiß ich, kann man die Farbe auch bei einer bedingten Formatierung auslesen?
(Alternativ würde es mir auch genügen, die Farbe aus der entsprechenden Formatvorlage auszulesen.Bis jetzt kann ich das nur umständlich über den angezeigten Namen und diesen dann über die Eigenschaft eines Feldes bei den Dialogen auslesen - das muss doch einfacher gehen!))
Grüße Pit

Re: Farbe bei bedingter Formatierung auslesen

Verfasst: So, 05.01.2020 16:37
von mikeleb
Hallo Pit,
angenommen oCell sei die betrachtete Zelle. Dann liefert dir der folgende Code im Prinzip die Hintergrundfarbe:

Code: Alles auswählen

	oCond=oCell.ConditionalFormat
	if oCond.Count>0 then
		sStyle=oCond.getByIndex(0).StyleName
		oStyle=oDoc.StyleFamilies.getByName("CellStyles").getByName(sStyle)
		iColor=oStyle.CellBackColor
	else
		iColor=oCell.CellBackColor
	end if
"Im Prinzip" weil,
1) Wenn für die Zelle (mindestens) eine bedingte Formatierung vorliegt, wird nur die Vorlage der 1. Bedingung ausgelesen und darin die festgelegte Hintergrundfarbe. Wenn keine Bedingungen vorliegen, dann die Hintergrundfarbe der Zelle.
Wenn die Hintergrundfarbe nicht extra festgelegt ist ("automatisch"), dann erhältst du den Wert -1.
2) Welche Hintergrundfarbe die Zelle gerade hat erfährst du damit nicht. Dazu müsstest du wissen, ob die Bedingung erfüllt ist oder nicht. Bisher ist mir nicht bekannt, ob bzw. wie man das per Makro herausfindet.

Re: Farbe bei bedingter Formatierung auslesen

Verfasst: So, 05.01.2020 20:09
von erikafuchs
Hallo mikeleb,
Danke mal wieder. Sieht gut aus und die Bedingung kann ich auslesen, das sollte klappen. Das probiere ich morgen aus.
So long

Re: Farbe bei bedingter Formatierung auslesen

Verfasst: Di, 07.01.2020 14:54
von erikafuchs
Funktioniert prima. Danke!

Re: gelöst: Farbe bei bedingter Formatierung auslesen

Verfasst: Do, 16.01.2020 16:22
von Motley Glowv2
Hallo,
Das ist genau mein Thema, darf ich um zwei Tips bitten?

Ich bin das erste Mal in der Verlegenheit ein Makro zu benötigen, ich habe mir schon einige angesehen - aber ich verstehe es nicht.
Diese Funktion ist schon sehr dicht dran -
nur ich kann es nicht bedienen und ich möchte nicht auf Farben prüfen, sondern brauche die RGB oder HEX Werte
Der Aufruf dazu ist wie folgt
=FARBE(ZELLE("ADDRESS";A1);255;0;0)*WENN(B1="A";1;0)

klappte bei mir leider nicht, immerhin kam zumindest eine 0 als Ergebniss
(ich hab bei meiner Suche nach Funktionen > 6 verschiedene Fehlermeldungen bekommen)

Code: Alles auswählen

Function FARBE(Adresse,R,G,B)
zelle = ThisComponent.Sheets(0).getCellRangeByName(Adresse)
If zelle.CellBackColor(R,G,B)=RGB(R,G,B) Then 
      FARBE=1
   else
      FARBE=0
End if
End Function
Die Funktion, welche ich gerne hätte, liest fie Farbe von der Schrift und die Hintergrundfarbe eine anzugeben Zelle und schreibt den Wert in die Zelle mit dem Aufruf.

Also eigentlich muss nur auf die richtige Art und Weise die If Funktion entfernt werden?
Und die richtige Formel zum Aufruf braucht es auch.

Wie geht das? Wurde mich sehr freuen, würde mich sehr freuen zu wissen, wie es ohne If Funktion aussieht.
Und dann noch wie ich die Funktion auslesen kann?

Also diese und die von mikeleb.

Ich hoffe dann zu mehr zu verstehen.


Gruß
Guido