Zellenfarbe nach/mit Zeitintervallen wechseln lassen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Zellenfarbe nach/mit Zeitintervallen wechseln lassen

Beitrag von Skogtroll »

Moin Ihr Calculatories :D

Kann man die Farbe einer Zelle automatisch nach Zeitintervallen wechseln lassen?!?

Der Zeitintervall sollte errechnet werden, durch Eingabe in anderen Zellen: Errechnet werden sollen die BPM -> BPM heißt "Beets Per Minute" (auf Deutsch Takte pro Minute).

In eine Zelle soll zum Beispiel 124 eingegeben werden. Das wären die Takte pro Minute: 124 x pro Minute wechselt die Farbe.

In einer weiteren Zelle soll 2, 3, 4, 5, 6 oder 7 eingegeben werden können: Entsprechend dieser Zahl soll die Farbe wechseln...
  • ...bei 2 sollen 2 Farben wechseln
  • ...bei 3 sollen 3 Farben nacheinander wechseln
  • ...bei 4 sollen 4 Farben nacheinander wechseln
  • ...usw. usw. usw.
Kann man so etwas in OO Calc realisieren?!

Danke Euch Allen!

LG
Skogtroll
-----
LG
Skogtroll
Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Zellenfarbe nach/mit Zeitintervallen wechseln lassen

Beitrag von Stephan »

mittels Makro geht das, z.B.:

Code: Alles auswählen

Sub Zelle_dynamisch_faerben()
	tc = ThisComponent
	bpm = tc.Sheets(0).GetCellRangeByName("B1").Value
	anzahl = tc.Sheets(0).GetCellRangeByName("B2").Value
	
	If anzahl > 4 Then
		Msgbox "Eintrag für Anzahl zu groß", 48, "Abbruch"
		Exit Sub 
	End If
	
	Dim farbe(4)
	farbe(0) = RGB(0,0,0)
	farbe(1) = RGB(50,0,0)
	farbe(2) = RGB(100,0,0)
	farbe(3) = RGB(150,0,0)
	farbe(4) = RGB(200,0,0)
	
	tmp = (60/bpm)*1000
	i = 0
	stoppen = 0
	
	Do
		If stoppen = 1 Then Exit Sub
		Wait tmp
		i = i + 1
		If i > anzahl Then i = 0
		zellvorlage = tc.getStyleFamilies().getByName("CellStyles").GetByName("Die_Zelle")
		
		zellvorlage.CellBackColor = farbe(i)
	Loop
End Sub

Gruß
Stephan
Dateianhänge
Zelle_dynamisch_färben.ods
(10.32 KiB) 70-mal heruntergeladen
Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Re: Zellenfarbe nach/mit Zeitintervallen wechseln lassen

Beitrag von Skogtroll »

Danke Stephan!

Ich erhalte jedoch folgende Fehlermeldung
Laufzeitfehler.jpg
Laufzeitfehler.jpg (21.6 KiB) 1809 mal betrachtet
...und folgende Zeile ist "eingeblaut":

Code: Alles auswählen

zellvorlage = tc.getStyleFamilies().getByName("CellStyles").GetByName("Die_Zelle")
Nun kann es sein, dass es daran liegt, das ich noch nicht so richtig umzugehen weiß, wie Makros in OO Calc aktiviert werden. Vielleicht mache ich da Fehler.

Also in die Zellen B1 trage ich die "BPM" und in die Zelle B2 trage ich eine Zahl aus dem Bereich 2 bis 7 ein...

Wie aktiviere ich denn jetzt das Makro?!? ...muss ich noch einen Start-Button basteln. Am besten wäre es, wenn die Zelle mit dem Farbwechsel immer reagiert - also das Makro ausgeführt wird - wenn man die Inhalte der Zellen B1 und/oder B2 wechselt. Also der Tabelle ein Ereignis beim Wechsel von Inhalten zuweist.

Was mir auch nicht klar ist: In welcher Zelle vollzieht sich denn der Farbwechsel?!? ...B1 und B2 dürfen es jedenfalls nicht sein...

Danke nochmals!

LG
Skogtroll
-----
LG
Skogtroll
Skogtroll
*
Beiträge: 19
Registriert: So, 19.04.2015 18:05

Re: Zellenfarbe nach/mit Zeitintervallen wechseln lassen

Beitrag von Skogtroll »

...ohhh Entschuldigung!!!

Habe jetzt erst gesehen, dass Du eine Datei mit angehängt hast!!! Ich bin visuell noch nicht so mit diesem Forum vertraut und habe es ganz gepflegt übersehen! Entschuldige bitte!

Ja, jetzt wird mir einiges klarer. Der Start- und Stop-Button funktionierten allerdings nicht. Wenn ich da drauf klicke, passierte zunächst nix.

Ich habe es irgendwie geschafft, das es funktioniert. Über die Eigenschaften der Button habe ich diese 1x aufgerufen und anschließend lief es...

Ich habe es nun geschafft,
  • dass 7 Farben nacheineinander dargestellt werden können
  • dass die 1. Farbe bei Start Rot ist
  • das sich nach dem Rot Grauwerte nacheinandr verdunkeln
ABER: Wenn sich 4 Farben abwechseln sollen, muss ich in die Zelle B2 "3" eintragen. Wie kann ich es ändern, dass wenn dort "4" eingetragen wird, sich auch 4 Farben wechseln?

Die erste Farbe bei Start soll immer ROT sein!

Was ich nicht verstehe: Woher weiß die Datei, dass sich die Farbe in der Zelle C3 wechseln soll?!? ...ich finde da den Bezug nicht :shock:

Darf ich noch um eine Erweiterung bitten?! Mir ist erst jetzt - bei den ersten Probeläufen aufgefallen -, dass eine mitlaufende Zahl in der Zelle daneben (D3) von großen Vorteil wäre. Bei Rot "1", der ersten Graustufe "2", der nächsten Graustufe "3" usw. usw.. Also von 1 bis zum Eintrag B2 entsprechend bei jedem Farbwechsel hochzählen. Bei Rot immer wieder von vorne mit "1" beginnend.

Ich habe die von mir veränderte Datei nochmals "angehängt".

Nochmals vielen Dank!
Dateianhänge
Zelle_dynamisch_färben_01.ods
(10.39 KiB) 65-mal heruntergeladen
-----
LG
Skogtroll
Antworten