Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
552to556
552to556
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Interior.ColorIndex contra RGB(x,y,z)

Interior.ColorIndex contra RGB(x,y,z)
26.01.2005 20:29:16
r.sch.
Hallo Leute,
Excel kennt bekanntlich 56 Farben. Wie bekomme ich den RGB Wert zu einen Index Wert?
Mit folgenden 2 Routinen kann ich zwar die Farben in einer Tabelle darstellen:

Sub farben()
For B = 1 To 56
If B < 29 Then
Cells(B, 1).Interior.ColorIndex = B
Cells(B, 1) = B
Cells(B, 1).Font.Size = 8
Else
Cells(B - 28, 2).Interior.ColorIndex = B
Cells(B - 28, 2) = B
Cells(B - 28, 2).Font.Size = 8
End If
Next B
End Sub


Sub rgb_test()
Dim B, G, R
Dim BEnd, GEnd, REnd, Schritt
BEnd = 255: REnd = 255: GEnd = 255: Schritt = 51
For R = 0 To REnd Step Schritt
For G = 0 To GEnd Step Schritt
For B = 0 To BEnd Step Schritt
Tabelle1.Cells(1 + B / Schritt + R / Schritt * (REnd / Schritt + 1), 4 + G / Schritt).Interior.Color = rgb(R, G, B)
Tabelle1.Cells(1 + B / Schritt + R / Schritt * (REnd / Schritt + 1), 4 + G / Schritt) = Format(R, "000") & " " & Format(G, "000") & " " & Format(B, "000")
Next B
Next G
Next R
End Sub

aber da ich eigentlich den BackColor Wert einer UserForm TextBox ändern will, indem ich den Index dort eintrage (um ihn an anderer Stelle auszuwerten), brauche ich an der Stelle die zugehörigen RGB Werte.
Danke schon mal im Voraus und
Gruß aus 'm Vorharz
Reinhard

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Interior.ColorIndex contra RGB(x,y,z)
26.01.2005 20:41:22
Reinhard
Hi Namensvetter,
nachfolgenden Code kannst ja mal laufen lassen, ich hatte ihn mal für ein anderes Forum entwickelt. Die Hauptumrechnung in R G B geschieht durch Wert Mod 256 und anschliessendem /256 usw.
Gruß aus Meinhattan
Reinhard
***************************************************************************************
Hi johneff,
Rechtsklick unten auf den Tabellenblattnamen, Code anzeigen auswählen, der Editor geht auf, nachstehenden Code reinkopieren, Editor schliessen.
Dann mit Extras-->Makro-->Makros das Makro "Tabelle1!RGBAnzeige ausführen lassen. Dies musst du nur einmal machen.
In A:C hast du dann die 3 Werte für RGB, in D die Farbnummer(1-56) und in E siehst du wie die Farbe aussieht.
Die Werte die du anfangs siehst sind die Werte der Standardfarbeinstellung.
Jetzt kannst du nach Lust und Laune die Werte ändern, Änderungen siehst du sofort in Spalte E.
Gruß
Reinhard

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("A2:C57")) Is Nothing Then Exit Sub
If Target.Cells.Count <> 1 Then Exit Sub
z = Target.Row
ThisWorkbook.Colors(z - 1) = RGB(Cells(z, 1), Cells(z, 2), Cells(z, 3))
Target.Select
End Sub
Sub RGBAnzeige()
Dim z As Byte
Application.EnableEvents = False
With Worksheets("Tabelle1")
.Range("A1:E1") = Split("Rot Grün Blau Farbnummer Farbe")
For z = 1 To 56
.Cells(z + 1, 4).Value = z
.Cells(z + 1, 5).Interior.ColorIndex = z
Wert = Worksheets("Tabelle1").Cells(z + 1, 5).Interior.Color
On Error Resume Next
.Cells(z + 1, 1) = Wert Mod 256
Wert = (Wert - Cells(z + 1, 1)) / 256
.Cells(z + 1, 2) = Wert Mod 256
Wert = (Wert - Cells(z + 1, 2)) / 256
.Cells(z + 1, 3) = Wert Mod 256
Next z
End With
Application.EnableEvents = True
End Sub

Anzeige
werd' ich testen, danke erstmal :-)) o.T.
26.01.2005 20:45:04
r.sch.
o.T.
AW: Interior.ColorIndex contra RGB(x,y,z)
26.01.2005 20:56:24
r.sch.
Hi,
irgendwas flutscht da nicht:
für die Farbnummern 1 (scharz, 0,0,0) gibt dein makro 0,51,102 aus, dto für Nr 2 (weiß 256,256,256) und ab Nr 36 zeigt es 3x 256 für alle folgenden Farben?
War in F gerade Nebel? Spaß beiseite,
Gruß aus 'm Vorharz
Reinhard
AW: Interior.ColorIndex contra RGB(x,y,z)
26.01.2005 21:02:43
Reinhard
Hi Reinhard,
256 ??
ich habe die nachfolgenden Werte, hat Microsoft unterschiedliche Faben für Städter und Bergbauern? :-))))
Gruß
Reinhard

Rot	Grün	Blau	Farbnummer
0	0	0	1
255	255	255	2
255	0	0	3
0	255	0	4
0	0	255	5
255	255	0	6
255	0	255	7
0	255	255	8
128	0	0	9
0	128	0	10
0	0	128	11
128	128	0	12
128	0	128	13
0	128	128	14
192	192	192	15
128	128	128	16
153	153	255	17
153	51	102	18
255	255	204	19
204	255	255	20
102	0	102	21
255	128	128	22
0	102	204	23
204	204	255	24
0	0	128	25
255	0	255	26
255	255	0	27
0	255	255	28
128	0	128	29
128	0	0	30
0	128	128	31
0	0	255	32
0	204	255	33
204	255	255	34
204	255	204	35
255	255	153	36
153	204	255	37
255	153	204	38
204	153	255	39
255	204	153	40
51	102	255	41
51	204	204	42
153	204	0	43
255	204	0	44
255	153	0	45
255	102	0	46
102	102	153	47
150	150	150	48
0	51	102	49
51	153	102	50
0	51	0	51
51	51	0	52
153	51	0	53
153	51	102	54
51	51	153	55
51	51	51	56

Anzeige
AW: Interior.ColorIndex contra RGB(x,y,z)
27.01.2005 08:58:35
r.sch.
Hej Reinhard,
bei mir sieht das Ergebnis in der Tat so aus (werd' aber die Routie nochmal prüfen)
Gruß aus 'm Vorharz
Reinhard
Rot Grün Blau Farbnummer
0 51 102 1
0 51 102 2
0 51 102 3
0 102 204 4
0 0 255 5
51 51 0 6
51 51 51 7
0 51 102 8
51 51 153 9
51 51 153 10
51 102 255 11
51 51 0 12
51 51 51 13
153 51 102 14
102 102 153 15
102 102 153 16
51 102 255 17
153 51 0 18
153 51 102 19
153 51 102 20
153 51 102 21
153 51 102 22
153 153 255 23
153 51 0 24
153 51 102 25
153 51 102 26
153 51 102 27
255 0 255 28
255 0 255 29
255 0 0 30
255 0 0 31
153 51 102 32
255 128 128 33
255 0 255 34
255 0 255 35
255 255 255 36
255 255 255 37
255 255 255 38
255 255 255 39
255 255 255 40
255 255 255 41
255 255 255 42
255 255 255 43
255 255 255 44
255 255 255 45
255 255 255 46
255 255 255 47
255 255 255 48
255 255 255 49
255 255 255 50
255 255 255 51
255 255 255 52
255 255 255 53
255 255 255 54
255 255 255 55
255 255 255 56

PS.: nix gegen das Ländliche, obwohl ich leider die Bergstraße (Alsbach) mit hier hab' tauschen müssen
Anzeige
sorry, Flüchtigkeitsfehler meinerseits
27.01.2005 10:16:05
r.sch.
Moin Reinhard,
me aculpa, habe Tabelle1 durch Tabelle2 ersetzt, aber nur im 1. Vorkommen (und auf Tabelle1 waren noch andere Farbexperimente! Tschulligung!!
Habe jetzt den Zusammenhang mit QBColor:

Sub test()
Dim intFarbWert%, r%, g%, b%, intFW
intFarbWert = InputBox("Farbnummer: (leider nur bis 15)")
intFW = QBColor(intFarbWert)
r = intFW Mod 256
intFW = (intFW - r) / 256
g = intFW Mod 256
intFW = (intFW - g) / 256
b = intFW Mod 256
MsgBox r & "  " & g & "  " & b
End Sub

Leider leider funzt das nur bis Farbnummer 15 und stimmt nicht mit den Nummern aus xl2k überein!
Hat da vielleicht noch jemand eine Idee?
Gruß aus 'm Vorharz
Reinhard
Anzeige
AW: sorry, Flüchtigkeitsfehler meinerseits
27.01.2005 10:48:24
Reinhard
Hi Reinhard,
lass doch das QBColor weg, stammt aus uralten Dos-Zeiten wo es nur 8 Farben gab (Nummer 0-7), die anderen Farben (8-15) sind nur die ersten acht in intensiv, also leuchtender.
Nimm doch Code von meinem oder Rainers Beispielcode.
Gruß
Reinhard aus dem sonnigen Franfurt/Mein
AW: sorry, bin ich mit Blindheit geschlagen?
27.01.2005 15:02:35
r.sch.
Hi Reinhard,
ich suche nunmehr nichts anderes als den Ersatz der Funktion QBColor(wert), die dann für xl 2k gilt und Werte 1..56 abdeckt.
Gruß aus 'm Vorharz
Reinhard
PS hab m. d. g. T.g mit XY ungelöst verlustiert o
27.01.2005 15:04:59
r.sch.
o.T.
AW: Interior.ColorIndex contra RGB(x,y,z)
26.01.2005 21:01:54
Ramses
Hallo
probier mal das

Sub RGBAnzeige()
'auf Grundlage von einem Code von Nepumuk
Dim Rot As Long, Grün As Long, Blau As Long, Wert As Long
' ****** Ergaänzung Hajo
Dim i As Integer
For i = 1 To 56
Cells(i, 1).Interior.ColorIndex = i
Wert = Cells(i, 1).Interior.Color
'       Wert = ActiveCell.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, 2) = i
Cells(i, 3) = Rot
Cells(i, 4) = Grün
Cells(i, 5) = Blau
Next i
Cells(57, 2) = "Index"
Cells(57, 3) = "Rot"
Cells(57, 4) = "Grün"
Cells(57, 5) = "Blau"
Cells(58, 3) = "RGB Farbwerte"
End Sub

Gruss Rainer
Anzeige
AW: Interior.ColorIndex contra RGB(x,y,z)
27.01.2005 08:50:58
r.sch.
Hallo Rainer,
sieht schon viel besser aus! :-)) Vielen Dank!
Ich habe jetzt in der VBHilfe die Funktion QBColor gefunden, die mir den Zusammenhang zwischen Indexnummer Farbwert liefert, den ich dann mit Hilfe der Routine umsetzen kann.
Gruß aus 'm Vorharz
Reinhard
Function QBColor für 56 Farben
27.01.2005 15:22:56
Reinhard
Hi Reinhard,

Function QBColor56(Farbzahl As Integer)
'auf Grundlage von einem Code von Nepumuk und Rainer und mir :-)
Dim Rot As Long, Grün As Long, Blau As Long, Wert As Long
Range("A1").Interior.ColorIndex = Farbzahl
Wert = Range("A1").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
QBColor56 = RGB(Rot, Grün, Blau)
End Function


Sub test()
MsgBox "Farbzahl 35 hat dem RGB-Farbwert: " & QBColor56(35)
End Sub

Gruß
Reinard
Anzeige
besten Dank.. wie gesagt, vor lauter Formeln..
27.01.2005 15:41:08
r.sch.
Hej Reinhard,
ich bin halt doch noch ziemlich schlecht, wenn ich nicht selbst auf eine Funktion komme!
Danke dir und
Gruß
aus 'm Vorharz
Reinhard

26 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige