Automatische Veränderung der Füllfarbe nach Zellwertänderung

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Lederpille
Beiträge: 2
Registriert: Fr, 11.03.2022 07:16

Automatische Veränderung der Füllfarbe nach Zellwertänderung

Beitrag von Lederpille »

Moin, moin,

ein "kleines" Problem beschäftigt mich schon die halbe Nacht und ich wäre sehr dankbar, wenn einer von Euch eine Lösung für mich hätte.

Ich habe in meiner Tabelle eine Spalte, in der Zahlenwerte die sich häufig ändern, addiert werden. Das Ergebnis der Addition wird am Ende in einer Ergebniszelle ausgeworfen. Ändern sich die Werte in der Spalte, ändert sich natürlich auch das Ergebnis.
Nun wäre es schön, wenn sich die Füllfarbe der Ergebniszelle automatisch verändert, je nachdem ob das Ergebnis, nach Eingabe neuer Werte, größer oder kleiner geworden ist.

Gibt es dafür eine Lösung die auch für einen Calc-Anfänger umsetzbar ist?

Vielen Dank im voraus,

Lederpille.
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Automatische Veränderung der Füllfarbe nach Zellwertänderung

Beitrag von F3K Total »

Moin,
Lederpille hat geschrieben: Fr, 11.03.2022 08:21 Gibt es dafür eine Lösung die auch für einen Calc-Anfänger umsetzbar ist?
Das ist ja eine tolle Frage. Grundsätzlich, nein!
Woher soll denn das Programm wissen, dass du deinen Vergleich dann machen willst, wenn du drei Werte in deiner Tabelle geändert hast? Oder vier? Oder sieben ...
Mir fällt dazu nur eine Lösung per Makro ein.
Das folgende Makro macht was du willst, wenn du die Datei nach dem Ändern deiner Werte speicherst, und damit signalisierst, jetzt bist du mit den Änderungen fertig.

Code: Alles auswählen

REM  *****  BASIC  *****
Const sSheet as String = "Tabelle1"  'Tabellenname
Const sRange as String = "A2:A20"  'Summenbereich
Const sCell as String = "A23"  'Summenzelle mit Farbmarkierung


Sub Set_modification_color
    Dim FunctionAccess as Object
    ServiceFunctionAccess = createUnoService("com.sun.star.sheet.FunctionAccess")
    oSheet = Thiscomponent.Sheets.getbyName(sSheet)
    oRange = oSheet.getCellrangeByName(sRange)
    oCell = oSheet.getCellrangeByName(sCell)
    dCurrentValue = oCell.Value
    aData = oRange.DataArray
    dSumme = ServiceFunctionAccess.callFunction( "SUM",Array(oRange.Data))
    if dSumme > dCurrentValue then
         oCell.CellBackColor = RGB(0,255,0) 'grün
    elseif dSumme < dCurrentValue then
         oCell.CellBackColor = RGB(255,0,0) 'rot
    else 
        oCell.CellBackColor = -1 'keine Hintergrundfarbe
    end if
    oCell.Value = dSumme
End Sub
Beispiel anbei

Gruß R
Dateianhänge
Groesser_oder_kleiner_Bedingte_Formatierung.ods
(13.08 KiB) 72-mal heruntergeladen
Toxitom
********
Beiträge: 3768
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Re: Automatische Veränderung der Füllfarbe nach Zellwertänderung

Beitrag von Toxitom »

Hey zusammen,

also, ganz ohne Makro wird das tatsächlich wohl nicht gehen.

Neben der Lösung von F3K würde ich aber wohl eine einfachere vorschlagen:

Bedingte Formatierung: Vergleich der aktuellen Summe mit einer Zelle, in die vorherige Summe abgelegt wurde. Die könnte auch versteckt sein.

In dem Fall ändert sich die Farbe unmittelbar nach Eingabe eines neuen geänderten Wertes.

Das Makro wird jetzt nur noch benötigt, um die Summe als Vergleichswert in die Vergleichszelle zu speichern. Das Makro könnte dann an das Ereignis "Dokument geschlossen" oder auch an "Dokument öffnen" gebunden werden - und fertig. Dadurch entfällt der manuelle Aufruf eines Makros und die Farbe der Zielzelle verändert sich dynamisch bei jeder Eingabe eines Wertes.

Das Makro wäre dadurch etwas Kürzer ;))

Code: Alles auswählen

Sub ZellWertKopieren
  with thisComponent.sheets.getByName("Tabelle1")
    .getCellRangeByName("D1").value = .getCellRangeByName("B12").value
  end with
End Sub
In dem Falle wäre die "versteckte" Zelle D1 und die Summenzelle B12.

VG Tom
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Automatische Veränderung der Füllfarbe nach Zellwertänderung

Beitrag von F3K Total »

Hallo zusammen,
Lederpille hat geschrieben: Fr, 11.03.2022 08:21 ...nach Eingabe neuer Werte ...
Es kann natürlich sein, dass Lederpille gemeint hat, dass sich die Farbe nach jedem neuen Wert ändern soll, ich habe es so vestanden, dass er mehrere Werte ändern will um dann zu sehen wie sich die Gesamtsumme verändert hat.
Jetzt hat er also zwei Lösungsmöglichkeiten zur Wahl.

Gruß R
Lederpille
Beiträge: 2
Registriert: Fr, 11.03.2022 07:16

Re: Automatische Veränderung der Füllfarbe nach Zellwertänderung

Beitrag von Lederpille »

Guten morgen zusammen und vielen Dank für Eure Antworten. Ich werde das gleich mal ausprobieren.

Gemeint war tatsächlich so etwas wie eine Aktientabelle. Verändern sich Parameter, verändert sich auch der Wert der Aktie. Also wenn sie steigt -grün -,wenn sie fällt -rot-.
Schade, dass das offensichtlich nur über ein Makro funktioniert (bin halt Anfänger), aber ich werde mich da mal rein arbeiten.

Also vielen Dank noch mal und schönen Sonntag.
Antworten