Microsoft Excel

Herbers Excel/VBA-Archiv

RGB-Farben auslesen

Betrifft: RGB-Farben auslesen von: HartmutM
Geschrieben am: 23.08.2004 13:54:32

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

  


Betrifft: AW: RGB-Farben auslesen von: WernerB.
Geschrieben am: 23.08.2004 14:47:46

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 !


  


Betrifft: AW: RGB-Farben auslesen von: HartmutM
Geschrieben am: 23.08.2004 15:45:11

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


  


Betrifft: AW: RGB-Farben auslesen von: WernerB.
Geschrieben am: 24.08.2004 07:41:57

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.


  


Betrifft: AW: RGB-Farben auslesen von: HartmutM
Geschrieben am: 24.08.2004 08:16:18

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


 

Beiträge aus den Excel-Beispielen zum Thema "RGB-Farben auslesen"