Zelle nach RGB-Angaben färben

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zelle nach RGB-Angaben färben

Beitrag von turtle47 »

Hi DmxQuni,
DmxQuni hat geschrieben:gibte es eine formel dafür
Nein.
DmxQuni hat geschrieben:oder brauch ich einen speziellen code ?
Ja.

Findest Du hier. Müsste nur für Spalten angepasst werden.
Übrigens klemmt wahrscheinlich Deine Shifttaste. Solche durchgehend kleingeschriebenen Texte lassen sich unheimlich schlecht lesen.

Viel Erfolg.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Zelle nach RGB-Angaben färben

Beitrag von Karolus »

Hallo
Geht per Makro
Erklärungen im Code

Code: Alles auswählen

Sub B1_einfaerben
with thisComponent.sheets(0) '1. Tabellenblatt mit Index 0
	r = .getcellrangebyname("A1").value   'In A1 bis-
	g = .getcellrangebyname("A2").value  'A3 stehen die -
	b = .getcellrangebyname("A3").value  ' rgb-werte
	.getcellrangebyname("B1").cellbackcolor = RGB(r,g,b) 'B1 wird eingefärbt.
end with
End Sub
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zelle nach RGB-Angaben färben

Beitrag von turtle47 »

Hi Karo,

sorry, aber es muss trotz verbundener Zellen heissen:

Code: Alles auswählen

.getcellrangebyname("B1:B3").cellbackcolor = RGB(r,g,b)
Viele Grüsse.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Zelle nach RGB-Angaben färben

Beitrag von Karolus »

Hallo Jürgen
DmxQuni hat geschrieben:..
daneben würde ich gerne eine zelle mit der aus diesen Werten resultierenden Farbe einfärben.
..
Daraus schloss ich das er nur eine Zelle einfärben will, seinen 2. Beitrag hatte ich noch nicht gelesen.
nur wie bekomm ich das ganze jetzt Automatisiert hin, so dass ich nicht immer wieder das Makro ausführen muss?
@kuni
such im Basic und Java-unterforum nach "Listener"

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zelle nach RGB-Angaben färben

Beitrag von turtle47 »

Hallo Zusammen,
Karolus hat geschrieben:seinen 2. Beitrag hatte ich noch nicht gelesen.
Das entschuldigt natürlich alles. :wink:
DmxQuni hat geschrieben:nur wie bekomm ich das ganze jetzt Automatisiert hin, so dass ich nicht immer wieder das Makro ausführen muss?
Wie Karolus schon schrieb, mit einem Listener der beim Öffnen der Datei gestartet wird und beim schliessen wieder deaktiviert wird.
Die Einstellung dazu findest Du in der Datei unter Menue > Extras > Optionen > Anpassen > Reiter Ereignisse.

Hatte eine ähnliche Datei noch in meiner Grabbelkiste und kurz umgebaut.


Viel Spass.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
turtle47
*******
Beiträge: 1849
Registriert: Mi, 04.01.2006 20:10
Wohnort: Rheinbach

Re: Zelle nach RGB-Angaben färben

Beitrag von turtle47 »

Hallo Zusammen,

das Thema hatte mich vor einiger Zeit schon einmal beschäftigt und ich wollte das mit einer "Function" lösen.
Aber leider ist es nicht möglich über eine "Function" direkt die Farbe einer Zelle mittels

Code: Alles auswählen

oCell.CellBackColor = RGB(255,0,0)
direkt zu ändern.

Jetzt habe ich doch eine Möglichkeit gefunden. :lol:
Und zwar über den Weg einer Zellvorlage.

Beispiel:
Zunächst legt man eine eigene Zellvorlage (F11) an. In diesem Beispiel mit dem Namen "Cell_Background_Color"

Der Code für die Function lautet dann:

Code: Alles auswählen

Function Change_BGC()
Dim oDoc
	with thisComponent.getSheets().getByName("Tabelle1")
	r = .getcellrangebyname("A1").value   'In A1 bis-
	g = .getcellrangebyname("A2").value  'A3 stehen die -
	b = .getcellrangebyname("A3").value  ' rgb-werte
	end with
	oDoc = ThisComponent
	oStyles = oDoc.StyleFamilies 'Vorlagen des Dokumentes anprechen
	oCharacterStyles = oStyles.getByName("CellStyles")'Zellvorlagen anprechen
	myStyle = oCharacterStyles.getByName("Cell_Background_Color")'erstellte Zellvorlage anprechen
	myStyle.CellBackColor = RGB(r,g,b)'Farbe der Zellvorlage zuweisen und somit auch der Zelle
End function
Die Syntax der Zielzelle lautet:

Code: Alles auswählen

=CHANGE_BGC(A1:A3)
Der Zielzelle dann die Zellvorlage zuweisen.

Die RGB-Werte schreibt man dann in den Zellbereich "A1:A3".

Und schwups ändert sich die Zellfarbe der Zielzelle. 8)

Also, mir persönlich ist das so lieber als mit dem Listner im Hintergrund zu arbeiten.

Vielleicht kann das ja mal jemand brauchen.

Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!

Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Antworten