Grüezi Dirk
Jedem einzelnen dieser ColorIndizies kannst Du RGB-Werte
zuweisen und diese werden auch so dargestellt.
Genau das tue ich, damit ich die Farbe dann verwenden kann.
Daher auch die max 16 Zellen die ich benutze. Das sind die 16
„Indexfarben“ für Diagramme. Also RGB Wert bestimmen, in den
Index schreiben und anwenden. Dann kann man auch die RGB Werte
nehmen, da die ja dann „bekannt“ sind.
OK, Danke für diese wichtigen Hintergrund-Infos. Damit lässt sich viel besser erkennen, was Du genau tun möchtest.
Das Problem ist auch eigentlich „nur“ aus einer Zelle die
aktuellen RGB Werte auszulesen. Kann es sein, dass ich über
den Index an die RGB Werte gehen muss? Wenn ich den Event
onChange abfange und mir die Werte der Zelle anschaue
(…interior.color) scheinen da nicht die akzuellen Werte zu
liegen, oder die genannte Methode zur Umwandlung der long
Werte in rgb ist falsch, glaub ich aber eher nicht.
Nein, ich denke auch, dass das Auslesen soweit korrekt geht.
Mir scheint eher der Ereignis-Code fürs Selection_Change() etwas ‚konfus‘ zu sein.
Mit den folgenden Zeilen (für mich einfacher lesbar) bekomme ich IMO die richtigen Farben in die Zellen ausgeschrieben.
Wenn Du die Slider dann noch gleich mit diesen Zellen verknüpfst (über deren Eigenschaft 'Linkedcell) stehen diese jeweils auf dem richtigen Wert für die momentan aktive Zelle der Farben.
Zu der Muster Tabelle: Da auf dieser die Slider das
Wesentliche sind, die steuern mir die RGB Werte für die
Zellen, nützt das normale „Tabelle in einen Thread packen“
imho nichts. (Oder gibts da auch was?)
Du solltest die Mappe abspecken, auf einen WebSpace hochladen und den Link hier nennen.
Es ist jeweils nicht ganz einfach (und daher zeitintensiv) aus einer Beschreibung eine Mappe nachzubauen und ggf auch gleich die richtigen Bezeichnungen und Steuerelemente einzubauen.
Wenn eine Demo-Mappe zur Verfügung steht (oder eine klar strukturierte Beschreibung welche Elemente in der Mappe sind, wie sie heissen und wie sie womit verknüft sind, sowie der komplette Code) macht dies die Suche nach der Ursache eines Problems doch einiges einfacher.
Hier also nun der Ereignis-Code, der bei mir soweit korrekt tut:
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
Set Target = Intersect(Target, Range("A17:H18"))
If Not Target Is Nothing Then
If Target.Count \> 1 Then Set Target = Target(1)
Application.EnableEvents = False
Dim colHex As String
Range("A2").Value = GetRGB(Target.Interior.Color, "R")
Range("A6").Value = GetRGB(Target.Interior.Color, "G")
Range("A10").Value = GetRGB(Target.Interior.Color, "B")
End If
Application.EnableEvents = True
End Sub
Wie genau die Slider mit den Farben zusammenhängen ist mir (noch) nicht ganz klar, aber Du sagtest ja, dass dies soweit klappt…
Mit freundlichen Grüssen
Thomas Ramel
–
- MVP für Microsoft-Excel -
[Win XP Pro SP-2 / xl2003 SP-3]