Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: RGB Farben in Hex-Code und Rückwärts

RGB Farben in Hex-Code und Rückwärts
Blitzbrain
Hallo Ich habe ein Problem:
Ich möchte die RGB-Werte der Farbe der Aktuellen Zelle auslesen:
MsgBox ActiveCell.Interior.Color liefert mir nur eine Long-Zahl
Wie kann ich diese Zahl so auslesen, dass ich die Werte für R, G, B einzeln habe.
Ich habe keine Formel dafür gefunden...
Die RGB-Formel liefert mir dazu keine hilfe.
ActiveCell.Interior.Color.RGB(123,255,0) funktioniert...aber nicht rückwärts...
Wer kann helfen?
Freue mich über jeden Hinweis..
Beste Grüße
Sebastian
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
RGB=R+256*G+65536*B owT
15.11.2010 12:47:59
Rudi
AW: RGB Farben in Hex-Code und Rückwärts
15.11.2010 13:35:59
Blitzbrain
Danke! Hat bestens geklappt!
;
Anzeige
Anzeige

Infobox / Tutorial

RGB Farben in Hex-Code und Rückwärts


Schritt-für-Schritt-Anleitung

Um RGB-Werte der Farbe einer Zelle auszulesen und in einen Hex-Code umzuwandeln, kannst Du folgende VBA-Makros verwenden:

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeineDatei.xlsm)“ und wähle „Einfügen“ > „Modul“.
  3. Kopiere den folgenden Code in das Modul:

    Function RGBToHex(r As Integer, g As Integer, b As Integer) As String
       RGBToHex = "#" & Hex(r) & Hex(g) & Hex(b)
    End Function
    
    Function GetHexFromActiveCell() As String
       Dim cellColor As Long
       Dim r As Integer, g As Integer, b As Integer
    
       cellColor = ActiveCell.Interior.Color
       r = cellColor Mod 256
       g = (cellColor \ 256) Mod 256
       b = (cellColor \ 65536) Mod 256
    
       GetHexFromActiveCell = RGBToHex(r, g, b)
    End Function
    
    Function HexToRGB(hex As String) As Long
       Dim r As Integer, g As Integer, b As Integer
    
       r = CLng("&H" & Mid(hex, 2, 2))
       g = CLng("&H" & Mid(hex, 4, 2))
       b = CLng("&H" & Mid(hex, 6, 2))
    
       HexToRGB = RGB(r, g, b)
    End Function
  4. Verwende das Makro:

    • Um den Hex-Code der aktuellen Zelle zu erhalten, kannst Du die Funktion =GetHexFromActiveCell() in einer Zelle eingeben.

Häufige Fehler und Lösungen

  • Fehler: „Typ nicht definiert“

    • Stelle sicher, dass Du alle benötigten Variablen korrekt deklariert hast und die Daten vom richtigen Typ sind.
  • Fehler: Ungültiger Hex-Code

    • Achte darauf, dass Du die Hex-Farbe im richtigen Format (z.B. #FF00FF) eingibst, wenn Du die Funktion HexToRGB verwendest.

Alternative Methoden

  1. Excel-Formeln:

    • Wenn Du keine VBA-Makros verwenden möchtest, kannst Du auch die Funktion =DEC2HEX(A1) ausprobieren, wobei A1 die Zelle mit dem RGB-Wert ist. Diese Methode ist jedoch weniger flexibel.
  2. Online-Tools:

    • Es gibt diverse Online-Tools, um RGB-Farben in Hex zu konvertieren. Suche einfach nach „RGB to Hex Converter“.

Praktische Beispiele

  • Beispiel für RGB in Hex:

    • Wenn Du die RGB-Werte 255, 0, 0 (reines Rot) in Hex umwandeln möchtest, gibt =RGBToHex(255, 0, 0) das Ergebnis #FF0000.
  • Beispiel für Hex in RGB:

    • Wenn Du den Hex-Code #00FF00 (reines Grün) in RGB umwandeln möchtest, kannst Du =HexToRGB("#00FF00") verwenden, was 65280 zurückgibt (intern als Long-Zahl).

Tipps für Profis

  • Farbpalette erstellen: Nutze die Funktion, um eine Farbpalette in Excel zu erstellen, indem Du verschiedene Hex-Codes in einer Tabelle speicherst und die RGB-Werte direkt anzeigst.

  • VBA-Optimierung: Optimiere Deine VBA-Funktionen, indem Du Fehlerbehandlungen einbaust, um unerwartete Eingaben zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich den RGB-Wert einer Zelle in Excel herausfinden?
Du kannst die Funktion ActiveCell.Interior.Color im VBA verwenden, um den RGB-Wert der Hintergrundfarbe einer Zelle zu erhalten.

2. Wie kann ich einen Hex-Code in Excel eingeben?
Um einen Hex-Code in eine Zelle einzugeben, verwende das Format #RRGGBB, wobei RR, GG und BB die entsprechenden Rot-, Grün- und Blauwerte im Hexadezimalsystem sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige