Zellfarbe mit HEX Code setzen
#1
Guten Abend,

Die Aufgabe klingt einfach, aber bisher hab ich noch keine passende Antwort finden können.
Vielleicht könnt ihr mir ja helfen? Huh

Ich möchte in eine Zelle einen HEX Farbcode, z.B. #00ffbf eingeben, und dann soll diese Zelle die entsprechende Farbe annehmen.

Ich habe schon viel gesucht, gefunden und gelesen, allerdings meistens aus RGB Werten, und dann wurde auch immer die Farbe einer andere Zelle geändert, nicht die Zelle in der man den Farbcode eingegeben hat. Hab ich im Code die Zielzelle geändert, hat der Code nicht mehr funktioniert.

Vielen lieben Dank und lieben Gruß,
Chris
Top
#2
Moin Chris!
Nein! ich werde nicht fragen, was das soll …  Huh
Statt dessen gibt es eine Rumpfprozedur ohne jegliche Fehlerbehandlung:
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Target.Interior.Color = WorksheetFunction.Hex2Dec(Mid(Target, 2, 9 ^ 9))
End Sub

Mach was draus! ;)

Ist ja ein ekeliges Neongrün!

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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • themanfrommoon
Top
#3
Hi Ralf,

wow, cool!
Allerdings hat die Prozedur noch einen Bug: rot und blau sind vertauscht?!
Leider ist es mir nicht gelungen, die beiden Farben in der Prozedur zu tauschen?!
Hast du da nochmal einen Tipp?

Natürlich schreibe ich gerne wofür ich das haben möchte:
Ich logge aktuell 44 verschiedene Werte (37x Temperatur, 3x Strom, 3x Drehzahl und 1x Wasserverbrauch) von unserem Haus. Warum? Weil ich ein Spielkind bin, weil ich Lust am basteln hab, und weil ich es interessant finde.
All diese Daten werden in eine Datenbank geschrieben.
Das ist ein OpenSource Projekt namens "Volkszähler". (www.volkszaehler.org)
Nun habe ich mir ein Display gebaut, dass 7 ausgewählte interessantere Werte anzeigt.
Die Hardware ist ein ESP8266 und ein SPI Display mit 320x240 Pixeln, welches im Bad mit dem Lichtschalter eingeschaltet wird.
Schaltet man also im Bad das Licht ein, so loggt sich der ESP8266 im WLAN ein und ruft von einem Raspberry Pi 3 im Netzwerk die Daten aus der Datenbank ab und stellt die dar.
Dabei fragt er nicht nur die Werte, sondern auch die Farben der Kanäle ab.
44 verschiedene Werte = idealerweise 44 verschiedene Farben.
Ab einem gewissen Blickwinkel ändert sich die Helligkeit der verschiedenen Farben unterschiedlich.
Es gibt also Farben, die man bei einem großen Blickwinkel besser, und welche die man schlechter erkennen kann.
Die Farben sind in der Datenbank als HEX colorcode hinterlegt.
Nun habe ich mir eine Excel Liste erstellt mit allen Daten zu den einzelnen Kanälen.
In einer Spalte steht der HEX colorcode.
Nun will ich solange mit den Farben rumspielen, bis ich welche gefunden habe die man gut unterscheiden und trotzdem auch gut aus einem größeren Blickwinkel erkennen kann.
Dann habe ich mir von der Website https://www.w3schools.com/colors/colors_picker.asp ungefähr 82 Farbcodes aus verschiedenen Farbpaletten rauskopiert und in die Excel Liste kopiert.
Nun sehe ich da leider nur die Farbcodes aus verschiedenen Paletten.
Damit das nun übersichtlicher wird, möchte ich die Zelle, in der der Farbcode steht eben mit der entsprechenden Farbe füllen.
Das erleichtert dann das finden / auswählen einer Farbe.

....mehr isses dann eigentlich nicht :19:

Lieben Gruß,
Chris
Top
#4
Hi,

ich bin immer noch nicht weitergekommen.

Die Prozedur leider einen Bug: rot und blau sind vertauscht?!

Hat vielleicht jemand nochmal einen Tipp wie man rot und blau tauscht?

Danke und lieben Gruß,
Chris
Top
#5
Moin!
Interessanter Link:
https://stackoverflow.com/questions/1045...n-the-cell

Der RGB-Konverter scheint tatsächlich fehlerhaft zu sein!
Zitat:Excel's RGB() function actually creates a BGR value (I don't think anybody that might know why is saying why though) so Excel shows nibbles in reverse order.

Schaue Dir den Screenshot in der Mitte des Threads an und die zugehörige 
Code:
Sub ColourCells()


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


Gehe zu:


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