Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

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)
Antworten 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)
Antworten 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!!
Antworten 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.
Antworten Top


Gehe zu:


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