Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1744to1748
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ähnliche Farben unterscheiden/auslesen

Ähnliche Farben unterscheiden/auslesen
12.03.2020 15:23:44
lois
Liebe Forum-Gemeinde,
über die Funktion ZELLE.ZUORDNEN lese ich die Farbe einer Zelle aus:
=ZELLE.ZUORDNEN(63;INDIREKT("ZS(-1)";FALSCH))
Leider habe ich in einer Datei zwei sehr ähnliche Farben (die ich nicht ändern kann) die jeweils mit dem selben Standardfarben-Code "37" ausgegeben werden.
Farbe 1 rgb (183, 207, 232)
Farbe 2 rgb (195, 214, 235)
Ich muss aber leider beide unterscheiden können um erfolgreich Daten auszulesen.
Weiß jemand einen Trick, wie man den rgb-Code über eine Funktion auslesen kann oder die Standardfarbe dahin manipulieren kann, dass ein unterschiedlicher Farbcode ausgegeben wird?
Viele Grüße und vielen Dank,
Lois

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ähnliche Farben unterscheiden/auslesen
12.03.2020 15:30:48
Daniel
HI
da musst du dir meines Wissen nach eine VBA-Funktion schreiben
Function ColorWert(Zelle as range) as Long
ColorWert=Zelle(1).Displayformat.Interior.Color
End Function
und dann diese in der Zelle einsetzen.
Beachte, dass nachträgliche Formatänderungen keine Neuberechnung der Formeln auslösen.
Gruß Daniel
AW: Ähnliche Farben unterscheiden/auslesen
12.03.2020 18:00:53
lois
Hi Daniel,
vielen Dank für deinen Input.
Leider gibt mir deine Function einen #VALUE! Fehler aus. Bei meinen Daten handelt es sich um einen SAP BO Report.
Vermutlich handelt es sich um eine bedingte Formatierung und daher der Fehler, siehe:
https://docs.microsoft.com/en-us/office/vba/api/excel.range.displayformat
Vielleicht weißt du ja einen anderen Weg bzw. weißt wie ich das Problem lösen kann?
Viele Grüße,
Alois
Anzeige
AW: Ähnliche Farben unterscheiden/auslesen
12.03.2020 19:21:32
Daniel
Hi
stimmt
Microsoft hast das DisplayFormat nicht für Funktionen, die in Excelformeln verwendet werden, zu gelassen.
lösche einfach das DisplayFormat, dann funktioniert es.
Function ColorWert(Zelle as range) as Long
ColorWert=Zelle(1).Interior.Color
End Function

Farben, die durch die Bedingte Formatierung erzeugt werden, kannst du nicht auswerten.
Es geht zwar indirekt über einen Trick, aber einfacher ist es im Normalfall, nicht nach der Farbe, sondern entsprechend der Regel der Bedingten Formatierung auszuwerten.
Gruß Daniel
Anzeige
Mit UDF TxEval kein Problem, ...
13.03.2020 04:14:20
Luc:?
…Alois,
und so etwas mag Daniel mit Trick meinen. Ich würde das eher eine erfolgreiche Umgehungsmöglichkeit von µS-Einschränkungen nennen, die aller Wahrscheinlichkeit nach generell auch Anwendungsfälle verhindern sollen, die tatsächlich nicht ratsam wären. Eine reine Auswertung wie diese gehört aber sicher nicht dazu.
Die alte XLM-Fkt ZELLE.ZUORDNEN kann das nicht leisten, denn unter Xl4 gab's weder BedingtFormate noch mehr als 56 Zellfarben. Aber mit einer anderen XLM-Fkt und Daniels UDF geht's auch:
In der Ergebniszelle: =ZFarbe (definierter Name einer benannten Fml)
Benannte Fml ZFarbe: =AUSWERTEN("ColorWert("&ADRESSE(ZEILE(A1);SPALTE(A1))&")")
Das sollte reichen, weshalb ich nicht weiter auf meine ZellFml-UDF-Kombi =TxEval("CellColor("&ADRESSE(ZEILE(A1);SPALTE(A1))&")") eingehen will, obwohl ich die Grundlage dafür schon vor >10 Jahren entwickelt/-deckt hatte. ;-]
Morhn, Luc :-?
„Die universelle Befähigung zur Unfähigkeit macht jede menschliche Leistung zu einem unglaublichen Wunder.“ Stapps ironisches Paradoxon
Nichtsdestotrotz Durchblick verbessern mit …

Anzeige
Luc machts mal wieder unnötig kompliziert
13.03.2020 09:47:25
Daniel
der Trick für den Fall, dass Microsoft bestimmte Funktionen für Zellformeln "verboten" hat, ist einfach folgender.
man schreibt eine zweite benutzerdefinierte Funktion, welche die erste über Evaluate ausführen lässt.
In Evaluate findet diese Prüfung nicht statt.
hierzu muss man den Funktionsaufruf der ersten Funktion als Text in englischer A1-Schreibweise erstellen und mit Evaluate auführen lassen:
Berechnungsmakro:
Function FarbCode(Zelle As Range)
FarbCode = Zelle.DisplayFormat.Interior.Color
End Function

Ausführungsmakro für Zelle
Function FarbCode_Aufrufen(Zelle As Range)
FarbCode_Aufrufen = Evaluate("FarbCode('" & Zelle.Worksheet.Name & "'!" & Zelle.Address & ")")
End Function
Evaluate berechnet innerhalb von VBA als Text vorliegende Excelformeln
Gruß Daniel
Anzeige
Was mache ich denn kompliziert, ...
13.03.2020 16:04:20
Luc:?
…Daniel,
und was machst du anders als ich vorschlug‽ Ich hatte das entdeckt und das Verfahren entwickelt, nicht du (was dein Ego offensichtlich wurmt). Und es fktioniert mit lokaler FmlNotation eben auch über die XLM AUSWERTEN, mit UDF (TxEval) nur mit US-original-notierter Fml. Und meine UDFs sind im Ggsatz zu deinen Gelegenheitsschöpfungen universal ausgelegt. Und ich habe auch eine, die lokalen FmlText auswertet. Was soll also dein Versuch einer Abwertung meines Vorschlags anderes sein als Missgunst…‽
Luc :-?
AW: Was mache ich denn kompliziert, ...
13.03.2020 19:24:22
Daniel
Was ich anders mache als du?
Ich versuche nicht, dem Fragesteller die Verwendung meiner fertigen Makros und UDFs nahezu legen, sondern versuche, ihm das dahinter steckende Funktionsprinzip so zu erklären, dass er es versteht und damit in die Lage versetzt wird es selbstständig in seinen eigenen Makros und UDFs anzuwenden.
Um dieses Verständnis zu erleichtern, ist es meistens hilfreich, den Code auf die Kernaufgabe zu reduzieren und nur das zu zeigen, was für die Fragestellung notwendig ist.
Btw, Was versteht du unter "universell"?
Definiere doch mal bitte, welche Anforderungen eine UDF erfüllen soll, damit sie deiner Meinung nach "universell" ist.
Und was das "selber entdecken" angeht, wenns darum geht, dürfte ich weder Kaffee kochen noch Auto fahren oder hier was schreiben.
Das meiste was ich kann, gabe ich von anderen gelernt ohne dass diese erwarten dass ich überall rumerzähle, von wem ich gelernt habe also, so what.
Oder wurmt es dich, dass ich nicht auf dich als Quelle verwiesen habe?
Vielleicht bist du ja gar nicht meine Quelle...
Anzeige
Andere Quellen dürften sekundär sein, ...
14.03.2020 04:18:09
Luc:?
…meine 1.Frage (im Betreff) hast du nicht beantwortet und der Rest deiner AW ist wieder nur dein übliches Palavern, nichts Substanzielles.
Und was hast du hier erklärt? Nur, was man ohnehin vermuten, aber nicht wissen kann. Und glaube doch nicht, dass deine Reduzierung in diesem Fall von Relevanz wäre (und sonst auch nicht, da die Wenigsten damit VBA erlernen würden). Genau deshalb habe ich ja auch (ausnahmsweise) deine UDF benutzt.
Wer das Kaffee-Kochen erfunden hat, ist nicht ganz klar, das Autofahren jedenfalls Bertha Benz. Das hindert niemanden daran, Gleiches zu tun, aber die Urheberschaft sollte, falls möglich, schon bekannt sein und ggf beachtet wdn. Deshalb gibt's ja dafür auch Regeln (bspw f.Zitate) und Gesetze. Auch, wenn etwas nutzungsfrei ist, sollte man nicht so tun, als ob es auf dem eigenen Mist gewachsen wäre (eine Frage der Ehrlichkeit und des Anstands)…
Luc :-?
Anzeige
AW: Andere Quellen dürften sekundär sein, ...
15.03.2020 11:52:49
Daniel
Berta Benz?
Och Luc Automobile sind schon viel früher gefahren.
Vermutlich ist der wahre Erfinder des Automobils ein unbekannter französischer Miltärbeamter.
Außerdem habe ich nie so getan, als wäre das aum meinem Mist gewachsen, also hör bitte auf.
AW: Ähnliche Farben unterscheiden/auslesen
14.03.2020 15:47:45
Sulprobil
Hallo Lois,
Wennmöglich würde ich es mithilfe von Referenzzellen machen, die genau Deine gewünschten Farben haben, siehe als Beispiel sbCountMyColor:
http://sulprobil.com/Get_it_done/IT/Excel_Fun/Excel_VBA/sbSumMyFormat/sbsummyformat.html
Für bedingte Formatierungen hilft Dir vielleicht dies weiter:
https://stackoverflow.com/questions/45122782/how-to-get-the-background-color-from-a-conditional-formatting-in-excel-using-vba
Viele Grüße,
Bernd P
Anzeige
Vor allem dein 2.Link scheint zu belegen, ...
14.03.2020 18:03:30
Luc:?
…Bernd,
dass bis vor 2-3 Jahren kaum mal jemand auf die Idee gekommen ist, eine UDF in jeder Beziehung wie eine normale xlFkt zu behandeln, also sie (in einem Fml-Text) ggf auch einer Auswertung zu unterziehen. Entsprechende Andeutungen meinerseits (damals bzgl BedingtFormat-Fmln) wurden schon vor 10 Jahren kaum verstanden. Erst Jahre später schien es 'Wittgenstein' auf OL verstanden zu haben.
Soviel zu kreativer Fantasie, die jeder gute Fml-Crack aufbringen muss, VBAlern aber anscheinend (zumindest in Bezug auf UDFs) meist fehlt… ;-]
Gruß, Luc :-?

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige