Wenn Hintergrund ist grün, dann ...

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Wenn Hintergrund ist grün, dann ...

Re: Wenn Hintergrund ist grün, dann ...

von Stephan » Sa, 07.02.2015 07:48

Löst deine Funktion dieses Problem?


ja

Code: Alles auswählen

...
    fvh = 1
  Else
    fvh = 0
...
Gruß
Stephan

Re: Wenn Hintergrund ist grün, dann ...

von TrueColor » Fr, 06.02.2015 10:21

@Steffen73
Der sinnvollere Weg könnte sein, die Tabelle so zu gestalten, dass ausschließlich Daten ausgewertet werden, keine Farben. Also müsstest du analysieren, welche Daten über die Farbe codiert werden und diese Daten dann anderweitig in deiner Tabelle darstellen. Farben nur zur Verbesserung der Visualisierung verwenden (also z.B. das, was man mit Bedingter Formatierung macht).

@Hiker
Eine Idee zur "Nahebei-Farbraum-Abfrage":
Ähnliche Farben haben doch nur geringe Unterschiede in ihren RGB-Anteilen. Also könnte man doch hergehen und den RGB-Bereich gröber rastern, Einzelwerte zusammenfassen. Bsp. aus RGB(256,256,256) machst RGB_redux(16,16,16), damit hast du nur noch 1/8 aller diskreten Werte. Formelmäßig könnte man das sinngemäß so umsetzen:

Code: Alles auswählen

Red_redux = Ganzzahl (Red / 8)
Green_redux = Ganzzahl (Green / 8)
Blue_redux = Ganzzahl (Blue / 8)
Hm... hoffentlich ist das halbwegs verständlich, was ich da geschrieben hab, ich bekomm's heute nicht auf die Reihe, das klarer auszudrücken.

Re: Wenn Hintergrund ist grün, dann ...

von Hiker » Fr, 06.02.2015 09:37

Hallo,

in diesem Thread findest Du das Thema Farbe auch behandelt: viewtopic.php?t=2835
Lösung ist dasselbe, was Stephan schon vorgeschlagen hat. Und die Funktion kann man so benutzen, wie Du es wahrscheinlich schon kennst.

Ich habe vor einiger Zeit damit in einigen Tabellen, die Farbcdodierungen enthielten, die "Farbe" in eine neue Spalte codiert.
Zu den Problemen gehört:
Gelegentlich werden versehentlich ähnliche Farben verwendet und eine Nahebei-Farbraum-Abfrage habe ich noch nicht gesehen.
In Libre-Office werden Hintergrund-Farben, die direkt gestzt sind anders als bedingte Formatierungen behandelt - man erwischt also nicht alle.

Mein Fazit war daher: Versuche die Farbcodierung in eine Hilfsspalte zu konvertieren, die dann ausgeblendet als Grundlage einer bedingten
Formatierung dienen kann. Spätestens beim Versuch eine csv-Datei zu speichern ist die Farbinformation sonst weg und nicht rekonstruierbar.

MfG, Jörn

Re: Wenn Hintergrund ist grün, dann ...

von Stephan » Fr, 06.02.2015 07:33

Die Hintergrundfarbe kannst Du mit einer benutzerdefinierten Funktion auswerten, beispielsweise so:

Code: Alles auswählen

Function fvh(Zellname As String, r As Integer, g As Integer, b As Integer)
	bk = Thiscomponent.CurrentController.ActiveSheet.getCellRangeByName(Zellname).CellBackColor
	If Red(bk) = r AND Green(bk) = g AND Blue(bk) = b Then
			fvh = 1
		Else
			fvh = 0
	End If
End Function 

Gruß
Stephan

Re: Wenn Hintergrund ist grün, dann ...

von F3K Total » Do, 05.02.2015 22:29

Steffen73 hat geschrieben:Ist das so überhaupt realisierbar?
Calc kann von Haus aus nicht auf Basis der Zellhintergrundfarbe einen Zellinhalt berechnen. Das ginge nur per Makro, was du programmieren müsstest.
Umgekehrt, eine Hintergrundfarbe auf Basis eines Zellinhaltes, das geht->bedingte Formatierung.
Also, wenn A1 > 9 dann grün und B1 = A1, siehe Beispiel.
Gruß R
Dateianhänge
BSP.ods
(9.35 KiB) 196-mal heruntergeladen

Nach oben