Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
I want to have 20 shades of a color. 1 being the darkest, 20 being the
lightest. I am going to use this to color the cell background through code based on the 1 - 20 value. If I use .color = 6684672 as the 1 value, how do I graduate this down to say ..color = 16767449 as the 20 value? |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I usually record a macro and then maually select the colors I want. Then use the color numbers from the recorded macro in my code. the color numbers is a hexidecimal number which is in three parts (Red=0 to 255, Green=0 to 255, Blue=0 to 255). So you could uses Red = 25 Green = 50 Blue = 10 Mycolor = (Red*256*256) + (Green*256) + Blue -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Joel.
I too record macros to get color numbers. However in this instance I can use this meethod to determine to number for the darkest color, but how do I find the number of the next shade.... with the shades graduating on a scale of 1 to 20 with 1 being the darkest and 20 being the lightest? "joel" wrote in message ... I usually record a macro and then maually select the colors I want. Then use the color numbers from the recorded macro in my code. the color numbers is a hexidecimal number which is in three parts (Red=0 to 255, Green=0 to 255, Blue=0 to 255). So you could uses Red = 25 Green = 50 Blue = 10 Mycolor = (Red*256*256) + (Green*256) + Blue -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Pick 20 different shade in the macro. Don't use colorindex, instead select more colors. Convert the shades to hexidecimal to help you get the inbetween shades MyColor = 10053375 RedShade = int(MyColor/(256*256)) GreenShade = int(MyColor/256) mod 256 BlueShade = MyColor Mod 256 -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Joel, that doesn't help make same-shade colours light to dark. As I
mentioned, need RGB to HSL to RGB with 20 increments of L but not near 0 or 1 Regards, Peter T "joel" wrote in message ... Pick 20 different shade in the macro. Don't use colorindex, instead select more colors. Convert the shades to hexidecimal to help you get the inbetween shades MyColor = 10053375 RedShade = int(MyColor/(256*256)) GreenShade = int(MyColor/256) mod 256 BlueShade = MyColor Mod 256 -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Instead of recording a macro to get your colors, try doing this instead. Go
into the VB editor (of a new workbook if you want) and add a UserForm. In the Properties box, select any property that allows color to be set (for example, the BackColor property), then click the down arrow that appear. Next, select the Palette tab on the dialog box that appears and right click one of the 16 white squares at the bottom of the dialog page. This will bring up a color selection panel. You can select the main color you want from the large color selection square and then select the 20 color intensities you want from the thin vertical bar to the right of it. As you select each color intensity, jot down the Red, Green and Blue values for it and then use the 20 jotted down Red, Green and Blue values in VB's RGB function when assigning them. -- Rick (MVP - Excel) "Paul W Smith" wrote in message ... Thanks Joel. I too record macros to get color numbers. However in this instance I can use this meethod to determine to number for the darkest color, but how do I find the number of the next shade.... with the shades graduating on a scale of 1 to 20 with 1 being the darkest and 20 being the lightest? "joel" wrote in message ... I usually record a macro and then maually select the colors I want. Then use the color numbers from the recorded macro in my code. the color numbers is a hexidecimal number which is in three parts (Red=0 to 255, Green=0 to 255, Blue=0 to 255). So you could uses Red = 25 Green = 50 Blue = 10 Mycolor = (Red*256*256) + (Green*256) + Blue -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#7
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() I tried to get a even spread of colors. I don't have a great graphics card so I getting with the macro very little spread. Yo may get better results Sub Macro2() Range("a1").Interior.Color = RGB(204, 0, 200) Range("A2").Interior.Color = RGB(204, 0, 190) Range("a3").Interior.Color = RGB(204, 0, 180) Range("a4").Interior.Color = RGB(204, 0, 170) Range("a5").Interior.Color = RGB(204, 0, 160) Range("a6").Interior.Color = RGB(204, 0, 150) Range("a7").Interior.Color = RGB(204, 0, 140) Range("a8").Interior.Color = RGB(204, 0, 130) Range("a9").Interior.Color = RGB(204, 0, 120) Range("a10").Interior.Color = RGB(204, 0, 110) Range("a11").Interior.Color = RGB(204, 0, 100) Range("a12").Interior.Color = RGB(204, 0, 90) Range("a13").Interior.Color = RGB(204, 0, 80) Range("a14").Interior.Color = RGB(204, 0, 70) Range("a15").Interior.Color = RGB(204, 0, 60) Range("a16").Interior.Color = RGB(204, 0, 50) Range("a17").Interior.Color = RGB(204, 0, 40) Range("a18").Interior.Color = RGB(204, 0, 30) Range("a19").Interior.Color = RGB(204, 0, 20) Range("a20").Interior.Color = RGB(204, 0, 10) End Sub -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#8
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Do a quick search for functions to convert RGB to HSL, and back again HSL to
RGB, you'll find lots of examples to play with. Having return HS discard the L. Make 20 incremented values between say 0.8 to 0.1 as new L values (0 will be black and 1 white, so don't bother with values near those). With the original H & S and your new Ls make your new RGBs. FWIW, with 20 shades it will be difficult to distinguish them all unless they are placed adjacent, only then are the small shade differences noticeable. Regards, Peter T "Paul W Smith" wrote in message ... I want to have 20 shades of a color. 1 being the darkest, 20 being the lightest. I am going to use this to color the cell background through code based on the 1 - 20 value. If I use .color = 6684672 as the 1 value, how do I graduate this down to say .color = 16767449 as the 20 value? |
#9
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
How do I convert a color Long - 8210719, RGB(31,73,125) or #1F49FD to
something I can use to format the backcolor of a form control? White = &H80000005& - what sort of value is this? How do I convert any of the above color references to this format? |
#10
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() MyColor = 8210719 RedShade = int(MyColor/(256*256)) GreenShade = int(MyColor/256) mod 256 BlueShade = MyColor Mod 256 RGB(RedShade,GreenShade,BlueShade) -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#11
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
How does this help me?
I need something that I can use to color a control background at run time, so it has to be in the format similar to: &H80000005& You method below turns a Long number into RGB, but I already have RGB, I need the...whatveer the definiton is for the thing that has & signs at each end. "joel" wrote in message ... MyColor = 8210719 RedShade = int(MyColor/(256*256)) GreenShade = int(MyColor/256) mod 256 BlueShade = MyColor Mod 256 RGB(RedShade,GreenShade,BlueShade) -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#12
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
That's the constant value for vbWindowbackground, ie a system setting,
typically white. I don't understand your question, you can apply that constant directly. If you want to return the user's system colour(s) it's easy enough with the GetSystemColor API, but you don't need to, at least to set the colour properties of activeX controls. Curiosity, having informed you how to go about getting a range of colour shades why didn't you follow it up. Regards, Peter T "Paul W Smith" wrote in message ... How does this help me? I need something that I can use to color a control background at run time, so it has to be in the format similar to: &H80000005& You method below turns a Long number into RGB, but I already have RGB, I need the...whatveer the definiton is for the thing that has & signs at each end. "joel" wrote in message ... MyColor = 8210719 RedShade = int(MyColor/(256*256)) GreenShade = int(MyColor/256) mod 256 BlueShade = MyColor Mod 256 RGB(RedShade,GreenShade,BlueShade) -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
#13
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Sorry Peter I have used the method of getting shades by graduating the L
value. I was doing this from code so having an RGB value was no issue. This is another issue which is why I tried to start another thread (but failed). What I have is a heading area which is a range of cells colored with one of the theme colour. I have as certained that it is : 8210719, RGB(31,73,125) or #1F49FD I want to place a control on this header range of cells and match the control's background color to the color of the cells. Using the proprties on the control I want to set the background color but I cannot find anything that it will accept. It will not accept #1F49FD so what do I do? I know I could write something into the worksheet.activate event that colors the control because this would be doing it vua code, which I can do because I use the RGB function, but surely ther is a better way i coulod do it at design time? "Peter T" <peter_t@discussions wrote in message ... That's the constant value for vbWindowbackground, ie a system setting, typically white. I don't understand your question, you can apply that constant directly. If you want to return the user's system colour(s) it's easy enough with the GetSystemColor API, but you don't need to, at least to set the colour properties of activeX controls. Curiosity, having informed you how to go about getting a range of colour shades why didn't you follow it up. Regards, Peter T "Paul W Smith" wrote in message ... How does this help me? I need something that I can use to color a control background at run time, so it has to be in the format similar to: &H80000005& You method below turns a Long number into RGB, but I already have RGB, I need the...whatveer the definiton is for the thing that has & signs at each end. "joel" wrote in message ... MyColor = 8210719 RedShade = int(MyColor/(256*256)) GreenShade = int(MyColor/256) mod 256 BlueShade = MyColor Mod 256 RGB(RedShade,GreenShade,BlueShade) -- joel ------------------------------------------------------------------------ joel's Profile: http://www.thecodecage.com/forumz/member.php?u=229 View this thread: http://www.thecodecage.com/forumz/sh...d.php?t=198482 http://www.thecodecage.com/forumz |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Using some variation of int or trunc | Excel Discussion (Misc queries) | |||
Variation from the mean? | Charts and Charting in Excel | |||
SUMIF variation? | Excel Worksheet Functions | |||
need a variation in VBA for subtotals | Excel Programming | |||
variation of 2 rows | Excel Programming |