ZählenWennFarbe
#1
Hallo zusammen,

ich habe folgende Excel-Thematik: 

In der beigefügten Datei möchte ich gerne eine "ZählenWennFarbe"-Funktion einfügen. In den Spalten D + E sollen jeweils alle Zellen ab F gezählt werden, die die entsprechende Hintergrundfarbe besitzen.

Die Farben für Räume und Technik sollen dabei bei "Ressourcen§ gezählt werden und die Farbe für Mitarbeiter bei "Mitarbeiter".

Ich habe in Spalte B bei der Legende schon über "Namen definieren" die Zahlen der Hintergrundfarben generiert (=ZELLE.ZUORDNEN(63;INDIREKT("ZS(-1)";)))

Kann mir jemand sagen, wie ich da weiter verfahren kann, ohne zusätzliche Hilfsspalten einzufügen? Die Originaldatei ist recht groß und ich kann für die Spalten ab Spalte F nicht noch jedes Mal eine Hilfsspalte einfügen, welche mir die entsprechende Farbnummer ausgibt.

Vielen Dank für eure Hilfe!!


Angehängte Dateien
.xlsm   Excel-Beispielmappe Zählen_Wenn_Farbe.xlsm (Größe: 10,07 KB / Downloads: 12)
Top
#2
Hallo,

"Zelle.Zuordnen" wurde bereits in den 90-ern durch andere Methode ersetzt, es funktioniert zwar immer noch, aber viele "wollen da nicht ran".

Wenn der Bereich überschaubar ist, geht:

for each c in range("a1:f25")
select case c.interior.color
case rgb(200,120,50): Raum = Raum +1
'usw
end select
next c

Falls die gefärbten Zelle sehr verteilt sind, kann man auch versuchen

application.findformat.interior.color = rgb(..,..,..)
cells.find("*", findformat:=true)

Anstelle von rgb kann auch der VBA-Name der Farbe benutzt werden (strg-Leertaste)

mfg

(ohne J‌avaScript: kein Code-tag)
Top
#3
Hallo Fennek,

vielen Dank für deine schnelle Hilfe! 

Zu dem Makro habe ich noch folgende Rückfragen:
  • Für was steht denn "(200,120,50)"?
  • Was bedeutet das "Raum = Raum +1"? Bzw. wie kann ich das Makro weiter schreiben, so dass er Raum und Technik im Feld Ressource zusammenaddiert und die Mitarbeiter im Feld Mitarbeiter?
Wäre super, wenn du mir da noch weiterhelfen könntest oder das Makro mal in der Beispieldatei eingeben.

Danke!!
Top
#4
Hi,

dies sind die Zahlen für den RotGelbBlau-Anteil der Farbe, sie definieren also exakt eine Farbe.
Das Raum = Raum + 1 addiert jedesmal eine 1 zu dem Wert der Variable Raum, wenn die Zelle durch die durch RGB-Zahlen definierte Farbe eingefärbt ist.
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste