Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zellfarbe RGB-Wert

Zellfarbe RGB-Wert
Stef@n
Hallo Excel-Freunde,
ich habe eine Datei, in der verschiedene Zellen mit Farben gefüllt.
z.B. Grün, hellgrün, grün der Hell
das gleiche für Blau usw.
Ich brauche die RGB-Werte für die einzelnen Zellen !
Wie kann ich mir diese Werte anzeigen lassen ?
Freu mich auf einen Tip
Gruß
Stef@n
Anzeige
AW: Zellfarbe RGB-Wert
24.02.2011 11:13:36
Christian
Hallo Stefan,
zb. mit einem kleinen Makro à la:
Option Explicit
Sub GetColor()
Dim rng As Range
Dim c&, r&, g&, b&
For Each rng In Sheets("Tabelle1").Range("B5:B9")
c = rng.Interior.Color
r = c Mod &H100
c = c \ &H100
g = c Mod &H100
c = c \ &H100
b = c Mod &H100
Debug.Print r; g; b
Next
End Sub
Gruß
Christian
Anzeige
AW: Zellfarbe RGB-Wert
24.02.2011 11:34:39
Stef@n
Hallo Christian,
vielen Dank für den schnellen Tip ! Klappt ja perfekt !
Mit Debug.print schreibt er mir im vb direktbereich die Wert untereinander
jedoch wie ? In welcher Reihenfolge ?
Das ist mein Code
Option Explicit
Sub GetColor()
Dim rng As Range
Dim c&, r&, g&, b&
For Each rng In Sheets("Tabelle1").Range("a2:f6")
c = rng.Interior.Color
r = c Mod &H100
c = c \ &H100
g = c Mod &H100
c = c \ &H100
b = c Mod &H100
Debug.Print r; g; b
Next
End Sub
Das das Ergebnis aus dem Direktbereich
0 0 0
153 51 0
51 51 0
0 51 0
0 51 102
0 0 128
128 0 0
255 102 0
128 128 0
0 51 0
0 128 128
0 0 255
255 0 0
255 153 0
153 204 0
0 51 0
51 204 204
51 102 255
255 0 255
255 204 0
255 255 0
0 51 0
0 255 255
0 204 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
255 255 255
Kann man diese Werte vielleicht besser in die Datei
resp die einzelnen Zellen schreiben
also in die Zellen a2:f6 ?
Freu mich nochmal auf einen Tip
Gruß
Stef@n
Anzeige
AW: Zellfarbe RGB-Wert
24.02.2011 11:39:38
Klaus
Hi Stefan,
statt
Debug.Print r; g; b
schreibe
rng.Value = r & " " & g & " " & b
Damit überschreibst du aber eventuell vorhandenen alten Zelleninhalt. Aus deiner Frage interpretiere ich, dass dies gewollt ist.
Grüße,
Klaus M.vdT.
AW: Zellfarbe RGB-Wert - mit Datei
24.02.2011 11:45:19
Stef@n
Hallo Klaus
danke für den Tip !
Funktioniert mit dem "Reinschreiben" und darf auch ruhig so sein.
Habe jetzt mal die Datei hochgeladen zwecks Test
https://www.herber.de/bbs/user/73709.xls
Die RGB-Werte stimmt ganz sicher nicht überein :O
Gruß
Stef@n
Anzeige
AW: Zellfarbe RGB-Wert - mit Datei
24.02.2011 11:49:18
Hajo_Zi
Hallo Stefan,
Option Explicit
Sub RGBAnzeige()
'   auf Grundlage von einem Code von Nepumuk
Dim Rot As Long, Grün As Long, Blau As Long, Wert As Long
' ****** Ergänzung Hajo
Dim i As Integer
For i = 1 To 56
'       Farbe in Spalte A
Cells(i, 1).Interior.ColorIndex = i
Wert = Cells(i, 1).Interior.Color
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Grün = Wert Mod 256
Wert = (Wert - Grün) / 256
Blau = Wert Mod 256
'        MsgBox Rot & ", " & Grün & ", " & Blau
' ***** Ergänzung Hajo
Cells(i, 3) = Rot
Cells(i, 4) = Grün
Cells(i, 5) = Blau
Next i
'***** Ergänzung Hajo
Cells(57, 3) = "Rot"
Cells(57, 4) = "Grün"
Cells(57, 5) = "Blau"
Cells(58, 3) = "RGB Farbwerte"
End Sub

Anzeige
AW: Zellfarbe RGB-Wert - mit Datei
24.02.2011 11:54:35
Stef@n
Hallo Hajo
Dank für den Tip !
Der Code färbt mir alle 56 möglichen Farben in Spalte A und den dazugehörigen RGB-Wert
in die Spalten C:E
Kann ich sicher auch gebrauchen .
Nur soll mir der Code die Zell-Farben von a2:F5 auslesen
Das macht dein Code leider nicht :
Noch nen Tip ?
Gruß
Stef@n
Anzeige
AW: Zellfarbe RGB-Wert - mit Datei
24.02.2011 11:56:22
Hajo_Zi
Hallo Stefan,
das ist bestimmt nur eine kleine anpassung, nur wo sollen die Werte hin. Ich baue das nicht nach.

AW: Zellfarbe RGB-Wert - mit Datei
24.02.2011 11:58:33
Stef@n
Hallo Hajo
die Werte sollen direkt in die jeweiligen farbigen Zellen a2:f5 geschrieben werden.
Dank dir trotzdem für deine Hilfe / deinen Tip
Besten Gruß
Stef@n
Anzeige
AW: Zellfarbe RGB-Wert
24.02.2011 11:40:29
Stef@n
Ergänzung:
ich habe z.B. getestet und den code nur ausgeführt für die zelle a2
Dort ist die Zellfarbe in Orange
der code schreibt mir jedoch
0 0 0
Das ist doch Schwarz ?
Noch ne Idee ?
Gruß
Stef@n
nicht nachvollziehbar
24.02.2011 12:13:16
Klaus
Hi Stefan,
dass muss ein KC-Interface Fehler sein.
Bei mir wird aus schwarz 0 0 0 und aus Orange 255 102 0.
Datei hängt an:
https://www.herber.de/bbs/user/73710.xls
Ins Blaue:
falsche Tabelle aktiviert?
Code (mal nur für A2) falsch umgeschrieben?
Grüße,
Klaus M.vdT.
Anzeige
AW: nicht nachvollziehbar
24.02.2011 14:57:48
Stef@n
Hallo Klaus,
ich vermute, es liegt daran, dasss meine Datei eine benuterdefinierte Farbpalette ist.
Und ich kann das Makro dort nicht ausführen - er nimmt dann immer die Standardfarben
Wenn also in der Standard farbpalette die rechte obere Farbe "Schwarz" ist,
in meiner benutzerdefinierten Farbpalette das rechte obere Feld "Orange" ist,
dass schreibt der Code den "Standardwert" - nämlich 0 0 0 hinein.
Schade, dass es so nicht funktioniert.
Ich habe auch den Weg probiert, meine Standardfarbpalette durch meine zu ersetzten,
was auch in der Ansicht funktioniert. Aber der Code nimmt trotzdem die excel-Eigene
Standard-Farbpalatte als Hintergrund.
Schade, aber es ist wohl so
Gruß
Stef@n
Anzeige
AW: nicht nachvollziehbar
24.02.2011 17:24:20
Stef@n
Hallo Nepumuk
ja, ich schau mir den langen Thread mal an !
Dank Dir für den Tip :)
Gruß
Stef@n
AW: Zellfarbe RGB-Wert
24.02.2011 16:30:53
Rudi
Hallo,
die modifizierten RGB-Werte bekommst du so:
Sub GetColor()
Dim rng As Range
Dim c&, r&, g&, b&
For Each rng In Sheets("Tabelle1").Range("B5:B9")
c = ActiveWorkbook.Colors(rng.Interior.ColorIndex)
r = c Mod &H100
c = c \ &H100
g = c Mod &H100
c = c \ &H100
b = c Mod &H100
Debug.Print r; g; b
Next
End Sub

Gruß
Rudi
Anzeige
AW: Zellfarbe RGB-Wert
24.02.2011 17:12:09
Christian
Hallo Stefan, ich nochmal
wenn ich deine Bsp-Datei zugrunde lege:
https://www.herber.de/bbs/user/73709.xls
wird unter XL2003 die Farbe in der ersten Zelle (A2) tatsächlich als 0,0,0 erkannt. Unter XL2010 ist's korrekt "255, 204, 51".
kleiner Trick - frag mich nicht warum - füge in Zeile2 eine leere Zeile ein und lass den Bereich von A2 bis F6 laufen.
Bsp (nach dem eleganteren Weg von Nepumuk):
Sub GetRGB()
Dim rng As Range
Dim c&, r&, g&, b&
For Each rng In Sheets("Tabelle1").Range("A2:F6")
c = rng.Interior.Color
r = c And vbRed
g = (c And vbGreen) \ &H100
b = (c And vbBlue) \ &H10000
rng.Value = r & " " & g & " " & b
rng.Offset(6).Interior.Color = RGB(r, g, b)    'Kontrolle-Zellen einfärben
Next
End Sub

läuft bei mir unter XL2003 korrekt.
Gruß
Christian
Anzeige
AW: Zellfarbe RGB-Wert - perfekt !
24.02.2011 17:27:37
Stef@n
Hallo Rudi, hallo Christian
Dank sehr für die Tips
funktioniert ja jetzt perfekt !
Danke und besten Gruß
Stef@n
vergiss es...
24.02.2011 17:30:45
Christian
... geht doch nicht.
ich hatte deine Datei zunächst in XL2010 geöffnet und dann auf den anderen Rechner mit XL2003 rübergeschoben. Da hat das wie oben beschrieben funktioniert.
Aber deine Original-Datei direkt unter XL2003 geöffnet liefert falsche Werte.
keine weitere Idee
Christian
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

RGB-Werte von Zellfarben in Excel auslesen


Schritt-für-Schritt-Anleitung

Um die RGB-Werte von Zellfarben in Excel auszulesen, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung, um dies zu erreichen:

  1. Öffne Excel und gehe zu der Datei, in der du die Zellfarben analysieren möchtest.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deinDateiname)" > Einfügen > Modul.

  4. Kopiere den folgenden Code in das Modul:

    Option Explicit
    Sub GetColor()
       Dim rng As Range
       Dim c As Long, r As Long, g As Long, b As Long
    
       For Each rng In Sheets("Tabelle1").Range("A2:F6")
           c = rng.Interior.Color
           r = c Mod 256
           c = c \ 256
           g = c Mod 256
           c = c \ 256
           b = c Mod 256
           rng.Value = r & " " & g & " " & b
       Next
    End Sub
  5. Schließe den VBA-Editor und kehre zu Excel zurück.

  6. Führe das Makro aus: Drücke ALT + F8, wähle GetColor aus und klicke auf "Ausführen".

Das Makro wird die RGB-Werte der Zellfarben in die entsprechenden Zellen (A2:F6) schreiben.


Häufige Fehler und Lösungen

  • Fehler: Falsche RGB-Werte

    • Ursache: Wenn du eine benutzerdefinierte Farbpalette verwendest, kann es zu Abweichungen kommen.
    • Lösung: Überprüfe, ob die richtige Tabelle aktiviert ist, und stelle sicher, dass du die Standardfarbpalette verwendest.
  • Fehler: 0 0 0 für Schwarz

    • Ursache: Möglicherweise wird die Farbe nicht korrekt erkannt.
    • Lösung: Stelle sicher, dass du die Zellen tatsächlich mit der gewünschten Farbe ausgefüllt hast. Teste den Code in einer neuen Datei.

Alternative Methoden

Wenn du eine andere Methode bevorzugst, um die Zellfarben in Excel auszulesen, kannst du den folgenden Code verwenden, der die ColorIndex-Eigenschaft nutzt:

Sub GetColorWithColorIndex()
    Dim rng As Range
    Dim c As Long, r As Long, g As Long, b As Long

    For Each rng In Sheets("Tabelle1").Range("A2:F6")
        c = ActiveWorkbook.Colors(rng.Interior.ColorIndex)
        r = c Mod 256
        c = c \ 256
        g = c Mod 256
        c = c \ 256
        b = c Mod 256
        rng.Value = r & " " & g & " " & b
    Next
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von RGB-Werten in Excel:

  1. Hintergrundfarbe einer Zelle ändern: Wenn du die Hintergrundfarbe einer Zelle basierend auf RGB-Werten ändern möchtest, kannst du den folgenden Code verwenden:

    Sub ChangeCellColor()
       Dim r As Long, g As Long, b As Long
       r = 255
       g = 102
       b = 0
       Sheets("Tabelle1").Range("A1").Interior.Color = RGB(r, g, b)
    End Sub
  2. Zellfarbe überprüfen: Um die RGB-Werte einer bestimmten Zelle zu überprüfen:

    Sub CheckCellColor()
       Dim c As Long, r As Long, g As Long, b As Long
       c = Sheets("Tabelle1").Range("A2").Interior.Color
       r = c Mod 256
       c = c \ 256
       g = c Mod 256
       c = c \ 256
       b = c Mod 256
       MsgBox "RGB: " & r & ", " & g & ", " & b
    End Sub

Tipps für Profis

  • Verwende Farbpaletten: Wenn du mit einer benutzerdefinierten Farbpalette arbeitest, stelle sicher, dass du die RGB-Werte entsprechend anpasst.
  • Debugging: Nutze Debug.Print, um RGB-Werte in das Direktfenster auszugeben und Fehler schneller zu identifizieren.
  • Kombiniere Makros: Du kannst verschiedene Makros kombinieren, um die Zellfarben und ihre RGB-Werte zu analysieren und gleichzeitig Anpassungen vorzunehmen.

FAQ: Häufige Fragen

1. Wie finde ich die RGB-Werte für eine benutzerdefinierte Farbpalette? Um RGB-Werte für eine benutzerdefinierte Farbpalette zu finden, musst du sicherstellen, dass du die richtige Farbindexnummer verwendest. Überprüfe den Code, den du verwendest, und stelle sicher, dass er die benutzerdefinierte Palette berücksichtigt.

2. Welche Excel-Version benötige ich für diese Makros? Die meisten der hier vorgestellten Makros funktionieren in Excel 2003 und höher. Stelle jedoch sicher, dass du die korrekte Syntax für deine Version verwendest, insbesondere wenn du mit VBA arbeitest.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige