Wenn farbe x = Zellenwert 5
#1
Hallo

Folgende Frage:

Eine Zelle erhält durch eine bedingte Formatierung eine Farbe. Nun möchte ich, dass alle Zellen mit der Farbe "grau" den wert 15 erhalten.
a) Kann ich dies mit einem Wenn-Befehl auf die Zelle durchführen?
b) Ist es möglich eine Befehl zu verwenden, welcher die Abfrage auf 6 mögliche Farben mit 6 verschiedenen Werten durchführt?

b) wie findet man die verschiedenen Farbcodes heraus? 

Für Eure Unterstützung danke ich Euch.

Gruss Peter
Top
#2
Hola,


da du ja weißt, welche Bedingung die Farben hervorruft, kannst du diese Bedingungen mit Zählenwenn() oder Summenprodukt() zählen.
Schade übrigens, dass du kein abschließendes Feedback auf deine bisherigen Fragen gegeben hast.

Gruß,
steve1da
Top
#3
Hi,

eine durch bedingte Formatierung erstellte Farbe kann nicht per Formel oder VBA ausgelesen werden!

Du kannst nur, wie schon geschrieben, die Formel aus der bed. Formatierung verwenden und dann die Werte eintragen.

Zu den Farbcodes gibt es hier und hier (= Datei) Beispieldateien.
Top
#4
Besten Dank für Eure Rückmeldungen!

Ich habe die Zellen mit einer Wenn Bedingung versehen. Dies funktioniert.
Das Einzige Problem ist, dass bei dieser Datenmenge das Excel sehr langsam wird.

Gruss Peter
Top
#5
Moin!
Dies liegt idR nicht an irgendwelchen Formeln, sondern am exorbitantem Gebrauch von bedingten Formatierungen.
Lesefutter:
http://www.online-excel.de/excel/singsel.php?f=172

Eine Datentabelle ist nicht bunt, sondern stringent!

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Top
#6
Eijeijei, Ralf (Rabe),
so gar nicht auf dem Laufenden‽ ;-]
1. Konnte man das schon immer, nur war es sehr kompliziert. Davon ist die Pixel-Methode die älteste, aber auf Farben beschränkt. Die naheliegendste und deshalb am häufigsten versuchte, war das Feststellen der erfüllten Bedingung über die Auswertung ihrer Formel. Daran sind dann die Meisten gescheitert, wenn's 'ne lokale Xl-Version war und nicht nur ein einfacher Vergleich mit dem Zellwert (u.a. Hajo per VBA nicht und ich auch per UDF in Zellformel nicht). Die 3.Methode (ab Xl12/2007) bestand dann darin, die BedingtFormat-Regel ihre Nummer mitteilen zu lassen, wenn sie erfüllt war („Methode Gandalf“).
2. Das alles ist ab Xl14/2010 im Normalfall überflüssig, denn es gibt jetzt die objektbildende Range-Eigenschaft .DisplayFormat mit denselben Normalformat-Eigenschaften wie Range ! Folglich muss auch nicht unbedingt die Regel-Formel nachgestellt werden. In Zellformeln gibt's für eine UDF, die diese Eigenschaft abfragt, aber eine Hürde → MS lässt Xl das unterbinden! Allerdings haben sie dabei AUSWERTEN und die vbFunktion Evaluate „vergessen“… ;-]
Gruß, Castor
Top
#7
Hi ,
(02.05.2017, 16:17)Castor schrieb: Eijeijei, Ralf (Rabe),
so gar nicht auf dem Laufenden‽ ;-]

macht nix, ist ja nur ein Hobby und ich stehe dazu, daß ich nicht alles weiß, dazu gibt es ja noch genügend andere Helfer, die mich korrigieren können (und dürfen).
Dann schreibe ich nächstes Mal: "kann auf einfachem Weg nicht per Formel oder VBA ausgelesen werden".


zu 1.) das schrieben Steve und ich ja, daß die Formel verwendet werden kann als Abhilfe.
Die Pixel- und die Gandalf-Methode würde mich interessieren, kannst Du da Beispiele zeigen?
zu 2.) wie Du es beschreibst, klingt das kompliziert, das würde ich mir als Anfänger nicht zutrauen.

Aber schön, daß es nun wohl doch mehrere Methoden gibt.

Castor schrieb:(u.a. Hajo per VBA nicht und ich auch per UDF in Zellformel nicht)

d.h. ihr beide habt es in dem komplizierteren Fall ("lokale Xl-Version und nicht nur ein einfacher Vergleich mit dem Zellwert") nicht hinbekommen?
Top
#8
Hallo Peter,

(01.05.2017, 21:45)Macko64 schrieb: Eine Zelle erhält durch eine bedingte Formatierung eine Farbe.
b) wie findet man die verschiedenen Farbcodes heraus? 

z.B. so:
Sub Test()
 MsgBox ActiveCell.DisplayFormat.Interior.Color
 'oder
 'ActiveCell.Value = ActiveCell.DisplayFormat.Interior.Color
End Sub
Dabei ist es egal, ob die Formatierung bedingt oder fest ist.

Sie z.B. auch hier: http://www.clever-excel-forum.de/Thread-...ormatieren

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Rabe
Top
#9
Nee, Ralf,
das hast du falsch verstanden! Hajo hat das Problem auf diese Weise (Methode 2) angegangen und es per Subprozedur weitgehend, wenn auch umständlich gelöst. Das siehst du schon an seinem HTML-Tool. Ich habe das nahezu ebenso weitgehend per UDF gelöst, weil ich herausgefunden hatte, wie man die 1.Hürde elegant und einfach umschifft. Alles Weitere ist dann Fleißarbeit, die ab Xl12/2007 aus­ufert und nicht in jedem Fall (speziell Icons und auch Daten­balken) zum Ziel führt. Außerdem sind auch Unterschiede zu früheren Versionen bzgl der Fest- und Darstellung mehrfarbiger Texte zu konstatieren, was das Ermitteln der gezeigten Farbe nun zusätzlich erschwert. Außerdem kommt natürlich noch hinzu, dass auch mehrere Regeln für eine Zelle gelten können, falls sie unter­schiedliche Format­elemente ansprechen (damit und mit Pivot-Bedingt­Formaten hatte ich mich noch nicht befasst!).
Die Methode von Gandalf (von dem man lange nichts mehr gelesen hat) ist ebenso wie die auf Farben beschränkte Pixel-Methode (M.Schwimmer und Nepumuk) noch im alten Office-Loesung-Forum beschrieben und auch bei herber  findet sich dazu etwas. Aber die sind ab Xl14/2010 beide überflüssig, die andere Methode aber nicht unbedingt (in Gänze)…
Uwe hat dir ja nun schon einen BspCode für das jetzt Mögliche geschrieben. Den könntest du auch in die Form einer UDF bringen und dann eine Formel mit dieser UDF als Formel­text per AUSWERTEN in benannter Formel ausführen lassen. Alternativ könntest du auch direkt in einer Zellformel eine UDF auf der Basis der vbFunktion Evaluate  nutzen, deren Argument dann dieser Formel­text in US-Notation sein muss.
Gruß, Castor

Nachtrag: Uwes Link scheint aber mit dieser Problematik nichts zu tun zu haben…
[-] Folgende(r) 1 Nutzer sagt Danke an Castor für diesen Beitrag:
  • Rabe
Top


Gehe zu:


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