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"