ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Setting Background Color RGB (Always goes to closest index color) (https://www.excelbanter.com/excel-programming/347162-setting-background-color-rgb-always-goes-closest-index-color.html)

[email protected]

Setting Background Color RGB (Always goes to closest index color)
 
I'm trying to set the background color of cells in excel 2003.

target.Interior.Color = RGB(228, 234, 244)

Except no matter what color I use it seems to default to the closest
index color. So the above goes to color

RGB(204, 255, 255) which is ColorIndex 20. How I can set it to a custom
RGB color?

Thanks


Alok

Setting Background Color RGB (Always goes to closest index color)
 
Excel only allows you to set one of the colors in its color pallette.
Alok


" wrote:

I'm trying to set the background color of cells in excel 2003.

target.Interior.Color = RGB(228, 234, 244)

Except no matter what color I use it seems to default to the closest
index color. So the above goes to color

RGB(204, 255, 255) which is ColorIndex 20. How I can set it to a custom
RGB color?

Thanks



[email protected]

Setting Background Color RGB (Always goes to closest index color)
 
Thanks alok. But then why does microsoft imply you can?? On this page:

http://office.microsoft.com/en-us/as...366271033.aspx

They set it to a color thats not in the Palette [RGB(200,160,35)] ??

I have also found numerous other sites that say you can set it to any
color you wish using interior.color = RGB(int, int, int)

Are they all wrong??


Tom Ogilvy

Setting Background Color RGB (Always goes to closest index color)
 
You can set it to any color you want - but Excel will convert it to one of
the 56 colors defined in the palette.

In excel help under worksheet and workbook specifications:

Colors in a workbook 56


That said, you can set any of the 56 colorindexes to any one of the RGB
colors (modify the palette). So you can have any color you want in the
cell, but within all the cells, you are limited to a total of 56 different
colors.

--
Regards,
Tom Ogilvy

wrote in message
oups.com...
Thanks alok. But then why does microsoft imply you can?? On this page:

http://office.microsoft.com/en-us/as...366271033.aspx

They set it to a color thats not in the Palette [RGB(200,160,35)] ??

I have also found numerous other sites that say you can set it to any
color you wish using interior.color = RGB(int, int, int)

Are they all wrong??




[email protected]

Setting Background Color RGB (Always goes to closest index color)
 
Thanks Tom for the explanation. I have to admit thats pretty stupid
having it limited though. I'm sure there a good reason behind it?


Tom Ogilvy

Setting Background Color RGB (Always goes to closest index color)
 
You must store the setting for every used cell in the workbook. the space
required to store the index number is significantly smaller than the space
required for an rgb color.

--
Regards,
Tom Ogilvy

wrote in message
oups.com...
Thanks Tom for the explanation. I have to admit thats pretty stupid
having it limited though. I'm sure there a good reason behind it?




Peter T

Setting Background Color RGB (Always goes to closest index color)
 
As has been confirmed to you Excel maps colours that don't exist in the
palette to nearest (?) colour in the palette. It has also been suggested you
can customize your own colour.

However if you don't want to customize the palette you could use one of the
pattern shades combining two colours to get a reasonably close colour match.

As it happens, I have a colour match algorithm which can be used, amongst
other purposes, to return the best 5 permutations of interior + pattern
colours and shade to match a custom colour without customizing the palette.

For your RGB(228, 234, 244) - returns the following 5 suggestions -

Sub MyBlue()
Dim i As Long
Dim vIntIdx, vPattern, vPatIdx

' match RGB(228, 234, 244)
vIntIdx = Array(34, 2, 2, 2, 24)
vPatIdx = Array(38, 37, 24, 47, 36)
vPattern = Array(xlGray25, xlGray25, xlGray25, xlGray25, xlGray25)

For i = 0 To 4
With Cells(i + 2, 2).Interior
.ColorIndex = vIntIdx(i)
.Pattern = vPattern(i)
.PatternColorIndex = vPatIdx(i)
End With
Next

With ActiveSheet.Shapes.AddShape(1, 150, 15#, 150#, 65#)
.Fill.ForeColor.RGB = RGB(228, 234, 244)
End With

End Sub

Un-typically, none of these are a particularly close match and unfortunately
none with 50% shade (preferable to 25% or 75%).

I understand in the pending Excel 12 it will be possible to format cells
with any colour.

Regards,
Peter T

wrote in message
oups.com...
I'm trying to set the background color of cells in excel 2003.

target.Interior.Color = RGB(228, 234, 244)

Except no matter what color I use it seems to default to the closest
index color. So the above goes to color

RGB(204, 255, 255) which is ColorIndex 20. How I can set it to a custom
RGB color?

Thanks





All times are GMT +1. The time now is 08:34 PM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com