Zählenwenn Farbfeld?


03.01.2023, 17:49

Die Hilfszahl Planung soll die Anzahl der eingefärbten Kästchen anzeigen.

4 Antworten

Hallo, ich habe Erfahrung damit und mein Tipp ist: Hände weg davon!
Man kann zwar FUNCTIONs programmieren, die Farben auslesen und damit rechnen, aber die Berechnung wird nicht neu angestoßen, wenn sich Farben ändern!

Also ist der umgekehrte Weg besser: Daten als Rechenbasis verwenden und die Farbe per bedingter Formatierung erzeugen.

Beispiel: ein Kollege muss unerledigte Aufgaben als erledigt markieren, dann soll er einen Wert (X, oder 1, oder was auch immer) in eine bestimmte Zelle schreiben, und die bedingte Formatierung reagiert darauf und macht den Status färbig sichtbar.

Ich habe doch eine Möglichkeit als FUNCTION gefunden, der Syntax ist:
=FARBENZÄHLEN(Überwachungsbereich;Farbmuster)+JETZT()-JETZT() .

Die FUNCTION Zählt im Überwachungsbereich die Anzahl der Zellen mit der Farbe der Zelle Farbmuster. Der Zusatz +JETZT()-JETZT() ist ein Trick, dass die Formel jedes Mal rechnet, wenn am Blatt irgendetwas neu zu berechnen ist. Mit F9 kannst du jederzeit eine Aktualisierung des Ergebnisses erzwingen.

Hier ein Screenshot von meinem funktionierenden Test: Bild zum Beitrag

das ist der VBA-Code für die Function:
Function FARBENZÄHLEN(rngBereich As Range, RngVorlage As Range) As Integer

  Dim Zelle As Range

  For Each Zelle In rngBereich

    If Zelle.Interior.ColorIndex = RngVorlage.Interior.ColorIndex Then FARBENZÄHLEN = FARBENZÄHLEN + 1

  Next Zelle

End Function

Woher ich das weiß:eigene Erfahrung – Faulheit >> Neugier >> Wissen
 - (Microsoft Excel, Formel)

Petra287 
Fragesteller
 03.01.2023, 15:54

Hallo Hannes, wie schade! Genau darum geht es mir natürlich ... dass auch bei Farbänderungen mitgezählt wird. Einen Wert eintragen ist leider schwierig, da die Felder bereits andere Werte enthalten, die sichtbar bleiben müssen. Und die Färbungen folgen hier auch keiner Logik sondern werden händisch (quasi beliebig) vorgenommen. Danach will ich sie aber zählen.

Keine Chance? Verflixt. das muss doch irgendwie gehen ...

0
hannes1806  04.01.2023, 10:14
@Petra287

ich habe jetzt ein Makro für dich gebastelt, leider kann man im Kommentar keine Screenshots hinterlassen, deshalb versuche ich es mit Prosa.

  1. Markiere den zu überwachenden Bereich und gib ihm den Namen Überwachungsbereich
  2. Markiere den Bereich, in dem die Farben gezählt werden sollen und gib ihm den Namen Listenbereich
  3. Öffne mit Alt&F11 den VBA-Editor
  4. Doppelklick auf die zu untersuchende Tabelle
  5. Stelle im linken Kasten von (Allgemein) auf Worksheet um
  6. Stelle im rechten Kasten SelectionChange ein
  7. Füge diesen Code ein, er startet jedes Mal, wenn du in dem Blatt in eine andere Zelle hüpfst:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

  Dim ZelleL As Range, ZelleÜ As Range

  Range("Listenbereich").ClearContents

  For Each ZelleL In Range("Listenbereich")

    For Each ZelleÜ In Range("Überwachungsbereich")

      If ZelleL.Interior.ColorIndex = ZelleÜ.Interior.ColorIndex Then

        ZelleL.Value = ZelleL.Value + 1

      End If

    Next

  Next

End Sub

1
Petra287 
Fragesteller
 04.01.2023, 13:21
@hannes1806

Hui! Toll, danke!!! Ich probiere das nachher mal aus und berichte dann hoffentlich über Erfolge ;)

0
Petra287 
Fragesteller
 16.01.2023, 23:57
@Petra287

@hannes 1806 Will mich kurz mal melden und niht unhöflich sein. Bin noch nicht dazu gekommen. Am Wochenende fuchse ich mich rein ;) Bingespannt!

0
Petra287 
Fragesteller
 22.01.2023, 21:56
@Petra287

@hannes1806 Das scheint wohl doch zu schwierig für mich zu sein. Ich bekomme schon gar nicht den VBA-Editor mit der Tastenkombination geöffnet. Da passiert einfach gar nichts.

0

Hallo,

schön, dass Su selber nach der Lösung gesucht hast, aber wenn man sich auf der Stelle dreht ... . Dafür gibt es ja GuteFrage.

WICHTIG ! Immer mit einer Kopie vom Original arbeiten !

Zunächst das Makro, dass ich kürzlich Interessanterweise abgespeichert habe (VBA nicht so versiert).

Mit ALT+F11 VBA-Projekt aufrufen und unter "Modul1" rechts den VBA-Script eintragen oder den Text kopieren, der unter dem Fenster steht, und im Code-Fenster einfügen. Speichern und Fenster schließen.

Bild zum Beitrag

Function ZELLFARBE(rngZelle As Range) As Integer ZELLFARBE = rngZelle.Interior.ColorIndex End Function

Datei mit *.xlsm abspeichern, damit das Makro wirksam wird.

Jetzt die Formel von mir. Damit müsste es klappen, selber getestet.

Bild zum Beitrag

Sobald eine Farbe hinzukommt, wird diese gezählt.

ACHTUNG ! Farben mit unterschiedlichen Farbtönen können den gleichen Farbcode haben. Könnte eventuell bei grün der Fall sein.

Beispiel, diese haben den gleichen Farbcode (Color-Index):

Bild zum Beitrag

Einfach prüfen, dass der Farbcode nicht 2x vorkommt.

Gruß Tron

Woher ich das weiß:Recherche
 - (Microsoft Excel, Formel)  - (Microsoft Excel, Formel)  - (Microsoft Excel, Formel)

Tron1701  05.01.2023, 09:58

Eigentlich wäre es in deinem Fall egal, wenn die Farben mehrfach vorkommen, bzw. verwendet werden, denn Du beziehst dich auf einen Bereich, wo nur eine Farbe vorkommt.

Gruß Tron

0
Petra287 
Fragesteller
 05.01.2023, 22:01
@Tron1701

Stimmt! Das wäre wahrscheinlich tatsächlich kein Hindernis.

0
Petra287 
Fragesteller
 05.01.2023, 22:07

Lieber Tron, Wahnsinn! Danke! Excel ist ja wirklich ein Zauberkasten, wenn man's kann. Mal sehen, ob ich das hinbekomme!

Viele Grüße, Petra

0
Tron1701  06.01.2023, 05:03
@Petra287

Herzlichen Dank, für deine Bekundung, über die ich mich sehr gefreut habe!

Gruß Tron

0
Petra287 
Fragesteller
 16.01.2023, 23:58
@Tron1701

@Tron1701 Will mich kurz mal melden und nicht unhöflich sein. Bin noch nicht dazu gekommen. Am Wochenende fuchse ich mich rein ;) Bin sehr gespannt!

1
Tron1701  17.01.2023, 08:57
@Petra287

Hallo,

kein Problem, denn man kann sich manchmal, aus zeitlichen Gründen, nicht immer damit beschäftigen.

Gruß Tron

0
Petra287 
Fragesteller
 22.01.2023, 21:45
@Tron1701

Oh weh, ich kriege das wohl nicht hin. Ich scheitere schon beim Öffnen eines VBA-Projekts. Auf die Tastenkombination Alt+F11 reagiert das Programm leider gar nicht. Unter "Ansicht" finde ich nur ein Feld "Makros". Was sich da öffnet sieht aber ganz anders aus als das was du gezeigt hast.

0
Tron1701  23.01.2023, 15:05
@Petra287

Hallo,

sorry, Du hast noch kein "Modul", dass erst erstellt werden muss.

Leider kann man bei Kommentare keine Abbildung beifügen

Mache folgende Schritte:

Alt gedrückt halten, dann F11.

Klicke im Fenster "Projekt - VBAProjekt" die "Tabelle1 (Tabelle1)" an.

Unter "Einfügen", "Modul" anklicken. Jetzt erscheint rechts ein Fenster wo Du dann den VBA Code hineinkopierst, wenn nicht "Modul" Doppelklicken.

Diesen VBA Code komplett markieren, kopieren und in deinem Modul-Fenster einfügen:

Function ZELLFARBE(rngZelle As Range) As Integer ZELLFARBE = rngZelle.Interior.ColorIndex End Function

Dann mit Speicher-Icon abspeichern, dann ganz, ganz rechts oben mit X schließen.

Du kriegst das schon hin, wenn nicht melde dich nochmal.

Beim öffnen der Datei kommt bei mir eine Makro-Sicherheitswarnung ... . Ich akzeptiere diese, da ich das Makro von GuteFrage habe, ich gehe davon aus, dass es OK ist.

Gruß Tron

0
Tron1701  03.02.2023, 04:56
@Tron1701

Allgemein ist bei *.xlsm Dateien, also mit Makro versehende EXCEL-Dateien, immer eine Sicherheitswarnung.

0
Tron1701  13.09.2023, 11:30
@Tron1701

Hallo Petra287,

wollte mal schauen was sich da ergeben hat.

Das mit den Farben zählen ist so ne Sache.

Ich hatte mit einer Zusatzspalte gearbeitet die mit der Formel =ZELLFARBE(B7) als Beispiel auf die Tages-Daten (inkl. Markierung) bezog. Deshalb hat es bei Dir nicht funktioniert !

Außerdem funktioniert dies auch nicht bei einer "bedingten Formatierung", zur Hervorhebung von Farben.

Besser ist immer mit Datenvergleichs-Formeln diese Auszuwerten und dann durch eine "bedingte Formatierung" hervorheben. Kurz erwähnt, aber oft aufwendig.

Ich gehe davon aus, dass eine adäquate Lösung gefunden wurde.

Gruß Tron

0

Da es NICHT über bedingte Formatierung eingefärbt wird, kann auch kein Zählenwenn die Dinge ermitteln. Also benötigt man VBA. Und dies wäre nicht zwingend zuverlässig wenn verschiedene Leute die Dinge ändern können, da dann ggf andere Nuancen bei der Farbwahl möglich sind. Somit wäre dann auch VBA nicht zuverlässig. ..aber die aktuell einzige Möglichkeit.


Ich sehe auf deinem Bild ja nicht, in welcher Zeile sich deine Formel befindet.

Die sichtbaren Felder K:M haben jedenfalls keine sichtbaren Werte eingetragen, so dass ich nicht weiß, warum du einen anderen Wert als "0" erwartest.


Petra287 
Fragesteller
 03.01.2023, 15:47

Hallo gfntom, der Wert ist ja in diesem Fall die Farbformatierung. Soll eigentlich gehen. Drum wird die Farbe vorher als Code definiert (hier 43 für grün), die dann in der Formel verwendet wird.

0
gfntom  03.01.2023, 16:27
@Petra287

Das ist ein typisches Beispiel von einem falschen Konzept:

in einem Tabellenkalkulationsprogramm Information in die Formatierung zu packen!

Um welche Anwendung geht es denn überhaupt? Ich bin von Excel ausgegangen.

Drum wird die Farbe vorher als Code definiert (hier 43 für grün)

Wie und wo wird das gemacht?
Ich sehe nur eine Formel, die mit ZÄHLENWENN bestimmte Zellen auf deren Inhalt absucht.

1
Petra287 
Fragesteller
 03.01.2023, 16:36
@gfntom

Hallo gfntom, ich weiß, dass das nicht die üblichste bzw. günstigste Herangehensweise ist. Allerdings gibt es quasi so viele Informationen, die gleichzeitig sichtbar sein müssen, dass ich verschiedene Informationsebenen nutzen muss/möchte. Die Zellen sind bereits mit Informationen gefüllt und müssen darüber hinaus dann noch gekennzeichnet werden (hier mit Farbe). Und die Anzahl der Kennzeichnungen muss ich eben dann wissen und weiterverarbeiten... Ich ahnte schon, dass das nicht so leicht wird..

0
gfntom  03.01.2023, 16:44
@Petra287

Füg eine Hilfsspalte ein, trag dort einen Zahl ein und färbe dann die entsprechenden Zellen mit bedingter Formatierung. Damit bist du all deine Probleme los und es ist auch nicht mehr Aufwand beim ausfüllen der Tabelle.

Und ich sehe immer noch nicht, warum dein ZÄHLENWENN nicht auf den Zelleninhalt zugreifen sollte.

Meine Frage, wie denn die "Codezuordnung" funktioniert, hast du leider auch nicht beantwortet.

0
Petra287 
Fragesteller
 03.01.2023, 16:57
@gfntom

Das "Codieren" habe ich nach dieser Anleitung gemacht. Das lief auch alles prima. Nur klappt es dann letztlich mit der Zählung nicht.

Das Problem ist, dass es keinen Kausalzusammenhang zwischen Inhalt der Zelle und Färbung gibt. Völlig unabhängig davon, keiner für das Programm nachvollziehbaren Regel folgend, müssen diese Zellen zum Einen sichtbar markiert/für das Auge abgegrenzt werden und gleichzietig gezählt werden.

0
gfntom  03.01.2023, 17:29
@Petra287
Das Problem ist, dass es keinen Kausalzusammenhang zwischen Inhalt der Zelle und Färbung gibt. Völlig unabhängig davon, keiner für das Programm nachvollziehbaren Regel folgend, müssen diese Zellen zum Einen sichtbar markiert/für das Auge abgegrenzt werden und gleichzietig gezählt werden.

Das habe ich verstanden und dir oben eine Lösung für das Problem vorgeschlagen

0
Petra287 
Fragesteller
 03.01.2023, 17:31
@gfntom
Füg eine Hilfsspalte ein, trag dort einen Zahl ein und färbe dann die entsprechenden Zellen mit bedingter Formatierung. Damit bist du all deine Probleme los und es ist auch nicht mehr Aufwand beim ausfüllen der Tabelle.
0
Petra287 
Fragesteller
 03.01.2023, 17:33
@Petra287

Es tut mir leid, aber irgendwie scheint dieser Vorschlag nicht zu meinem Problem zu passen oder ich verstehe ihn möglicherweise nicht.

0