Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 74
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Color Variation


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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 74
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Color Variation


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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,934
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Color Variation


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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 74
Default Color Definition

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default Color Variation


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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 74
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Color Variation

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   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 74
Default Color Variation

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
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Using some variation of int or trunc april Excel Discussion (Misc queries) 1 August 10th 09 09:44 PM
Variation from the mean? Greenwich_Man Charts and Charting in Excel 1 September 25th 07 03:14 PM
SUMIF variation? Bob Newman Excel Worksheet Functions 8 June 18th 06 09:13 PM
need a variation in VBA for subtotals CJ[_5_] Excel Programming 1 June 4th 06 05:04 PM
variation of 2 rows AmyTaylor[_10_] Excel Programming 4 July 19th 05 07:37 PM


All times are GMT +1. The time now is 01:18 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"