RGB values

B

benny

I am attempting to write some code that will in excel fill a cell with a user
created colour using RGB values.

basically the user will enter in the red, green and blue values in 3
seperate cells then i want to know how to write some code to get those RGB
values into a fill pattern and fill a cell with it?

example - r=20, g=145, b=250; then the cell will be populated with the
colour those RGB values create.

any one out there with a solution for me? if its possible i would prefer to
want some code i can simply type into a cell, if its avoidable i dont want to
use macros.
 
A

Alvin

here's an example

Selection.Interior.Color = RGB(20,145,250)
will set the active cell's background to the specified RGB value
 
C

chijanzen

Alvin:

example

Dim r As Double
Dim g As Double
Dim b As Double
Dim k As Long
For i = 1 To 56
Range("A" & i).Interior.ColorIndex = i
Range("B" & i) = i
k = Range("A" & i).Interior.Color
r = k Mod 256
b = Int(k / 65536)
g = Int((k - (b * 65536)) / 256)
Range("C" & i).Interior.Color = RGB(r, g, b)
Range("D" & i) = r & "," & g & "," & b
Next
 
C

Chip Pearson

Selection.Interior.Color = RGB(20,145,250)
will set the active cell's background to the specified RGB
value

Not quite. Excel is limited to a color pallet of 56 colors
(although you can choose any RGB color for inclusion in the
pallet). When you specify a value to the Color property, Excel
picks the closest color in its pallet to the one specified. You
are not guaranteed a match.

If you need an exact RGB color, you must first assign it to a
location in the pallet, and then use the ColorIndex to grab that
color. E.g.,

ThisWorkbook.Colors(56) = RGB(20,145,250)
Selection.Interior.ColorIndex = 56

--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top