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

Forumthread: RGB-Farben auslesen

RGB-Farben auslesen
23.08.2004 13:54:32
HartmutM
An alle VBA-Experten,
Mein Problem hatte ich heute morgen schon mal gepostet, aber scheinbar zu allgemein bzw unverständlich (niemand antwortete...).
Also, ich will die RGB-Werte einer Zellfarbe auslesen:
Nehme ich dazu das Makro A), ist das Ergebnis falsch, d.h. es werden die RGB-Werte der entsprechenden Windows-Standardfarbe ausgelesen.
Das Makro B) hingegen liefert das richtige / gewünschte Ergebnis.
Beide Makros unterscheiden sich nur durch die Art der Aktivierung der Zelle (A: Explizite Adresse ("B2"), B: "ActiveCell").
Wer kann mir helfen und das Makro A) so ändern, dass es das richtige Ergebnis liefert (Ziel: alle 56 Farben auslesen)?
Danke und beste Grüsse von
Hartmut
https://www.herber.de/bbs/user/9965.xls
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: RGB-Farben auslesen
WernerB.
Hallo Hartmut,
wie gefällt Dir das?

Sub A2()
Dim Rot As Long, Gruen As Long, Blau As Long, Wert As Long
Wert = Range("B2").Interior.Color
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Gruen = Wert Mod 256
Wert = (Wert - Gruen) / 256
Blau = Wert Mod 256
Range("C2").Value = Rot
Range("D2").Value = Gruen
Range("E2").Value = Blau
End Sub


Sub B2()
Dim Rot As Long, Gruen As Long, Blau As Long, Wert As Long
Wert = ActiveCell.Interior.Color
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Gruen = Wert Mod 256
Wert = (Wert - Gruen) / 256
Blau = Wert Mod 256
Range("C2").Value = Rot
Range("D2").Value = Gruen
Range("E2").Value = Blau
End Sub


Sub FarbeNeuZuweisen2()
Range("B2").Interior.Color = RGB(Cells(2, 3).Value, Cells(2, 4).Value, Cells(2, 5).Value)
End Sub

Viel Erfolg wünscht
WernerB.
P.S.: Dieses Forum lebt auch von den Rückmeldungen der Fragesteller an die Antworter !
Anzeige
AW: RGB-Farben auslesen
23.08.2004 15:45:11
HartmutM
Hallo WernerB,
Danke für Deine Antwort. Leider geht es aber trotzdem nicht.
Wenn ich Dein Makro 4x hintereinander laufen lasse, wird's falsch!
Kannst Du verstehen warum? Wäre prima.
Siehe beiliegende Tabelle, Button neben "Linien 2 bis 5"
Beste Grüsse von Hartmut.
https://www.herber.de/bbs/user/9972.xls
Anzeige
AW: RGB-Farben auslesen
WernerB.
Hallo Hartmut,
also bei mir wird immer das selbe Ergebnis angezeigt, egal wie oft ich das Makro laufen lasse.
Deine Feststellung "Wenn ich Dein Makro 4x hintereinander laufen lasse, wird's falsch!" kann ich also so nicht nachvollziehen; eine Fehlerursache kann ich so nicht finden..
In Deinem Fall würde ich allerdings anstatt mehrerer Einzel-Makros eine Schleife verwenden:

Sub RGB_Lesen()
Dim Rot As Long, Gruen As Long, Blau As Long, Wert As Long
Dim b As Byte
ActiveCell.Activate
For b = 2 To 5
Wert = Range("B" & b).Interior.Color
On Error Resume Next
Rot = Wert Mod 256
Wert = (Wert - Rot) / 256
Gruen = Wert Mod 256
Wert = (Wert - Gruen) / 256
Blau = Wert Mod 256
On Error GoTo 0
Range("C" & b).Value = Rot
Range("D" & b).Value = Gruen
Range("E" & b).Value = Blau
Next b
End Sub

Gruß
WernerB.
Anzeige
AW: RGB-Farben auslesen
24.08.2004 08:16:18
HartmutM
Hallo WernerB.,
Mit einer Schleife hatte ich schonmal begonnen.
Das falsche Ergebnis tritt vor allem (oder nur) nach dem Zuweisen einer neuen Farbe auf und einer Schleife auf. Ziel ist, die Farbe so zu definieren , dass Grafiken auf einem Laserfarbdrucker mit möglichst vielen - visuell unterscheidbaren - Farben druckbar sind.
Augenblicklich behelfe ich mir so, dass ich den letzen Button in meiner Beispielarbeitsmappe mehrfach auslöse.
Funktioniert bei Dir die Schleife auch wenn Du Farben mit dem Button "Redéfinir la couleur..." geändert hast?
Vielleicht hast Du noch eine gute Idee.
Vielen Dank und beste Grüsse von Hartmut.
https://www.herber.de/bbs/user/10002.xls
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

RGB-Farben in Excel auslesen


Schritt-für-Schritt-Anleitung

Um die RGB-Werte einer Zellfarbe in Excel auszulesen, kannst du ein einfaches VBA-Makro verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (DeinDateiname)" > Einfügen > Modul.
  3. Kopiere den folgenden VBA-Code in das Modul:

    Sub RGB_Lesen()
       Dim Rot As Long, Gruen As Long, Blau As Long, Wert As Long
       Dim b As Byte
       For b = 2 To 5
           Wert = Range("B" & b).Interior.Color
           Rot = Wert Mod 256
           Wert = (Wert - Rot) / 256
           Gruen = Wert Mod 256
           Wert = (Wert - Gruen) / 256
           Blau = Wert Mod 256
           Range("C" & b).Value = Rot
           Range("D" & b).Value = Gruen
           Range("E" & b).Value = Blau
       Next b
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus:

    • Gehe zu Entwicklertools > Makros > wähle RGB_Lesen und klicke auf Ausführen.

Damit werden die RGB-Werte der Zellen in den Spalten C, D und E angezeigt.


Häufige Fehler und Lösungen

  • Falsche Ergebnisse bei mehrfacher Ausführung: Wenn du das Makro mehrmals hintereinander ausführst und unterschiedliche Ergebnisse erhältst, könnte es daran liegen, dass die Zellfarbe zwischen den Ausführungen geändert wurde. Stelle sicher, dass die Zellen nicht manuell bearbeitet werden, während das Makro läuft.

  • Makro funktioniert nicht: Prüfe, ob du die richtigen Zelladressen im Code angegeben hast. Wenn du eine andere Zelle auslesen möchtest, ändere die Referenz in Range("B" & b) entsprechend.


Alternative Methoden

Falls du keine VBA-Makros verwenden möchtest, kannst du die Farbe auch manuell abfragen:

  1. Wähle die Zelle, deren Farbe du herausfinden möchtest.
  2. Gehe zu Start > Füllfarbe und notiere dir die Farbe.
  3. Verwende die Excel-Funktion =FARBWERT() (in neueren Versionen) um den Farbcode direkt zu erhalten.

Praktische Beispiele

  1. Zellfarbe abfragen:

    • Um die Farbe einer Zelle auszulesen, kannst du den folgenden VBA-Befehl verwenden:
    Sub ZellenfarbeAuslesen()
       MsgBox ActiveCell.Interior.Color
    End Sub
  2. Farbcode in Excel herausfinden:

    • Nutze die Formel =FARBWERT(A1) für eine Zelle in A1.

Tipps für Profis

  • Schleifen verwenden: Wenn du mehrere Zellen in einer Spalte analysieren möchtest, ist es effizient, eine Schleife zu verwenden, wie im obigen Beispiel gezeigt.
  • Farbnummern ermitteln: Du kannst den Farbcode auch nach den RGB-Werten bestimmen, indem du diese kombinierst und in RGB(Rot, Gruen, Blau) umwandelst.
  • Farbwerte speichern: Überlege, die RGB-Werte in einer separaten Tabelle zu speichern, um sie später leicht abrufen zu können.

FAQ: Häufige Fragen

1. Wie kann ich die Hintergrundfarbe einer Zelle auslesen?
Du kannst die Hintergrundfarbe mit dem Befehl Interior.Color auslesen, wie im Beispiel Wert = Range("B2").Interior.Color.

2. Was ist der Unterschied zwischen Interior.Color und ColorIndex?
Interior.Color gibt die RGB-Farbe zurück, während ColorIndex einen Indexwert für die Farbe in Excel zurückgibt, der auf den Standardfarben basiert.

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