Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Obtain current RGB settings for color indexes 17 thru 27

I am using Office 2003 on Windows XP.

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the file.

Does anyone have a function that will retrieve the current color mixes
(RGB)? If so, could you please post example code or a function? (Please note
that I already know how to custom mix the colors and add them to the palette,
access them, etc). OR if someone has an easier solution to this issue, please
post any suggestions...

Thanks much in advance.

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Obtain current RGB settings for color indexes 17 thru 27

Sub test()
Dim red, green, blue
GetRGB ActiveWorkbook.Colors(17), red, green, blue
Debug.Print red
Debug.Print green
Debug.Print blue
End Sub

Public Function GetRGB(colour As Long, ByRef red, ByRef green, ByRef blue)

red = colour And &HFF
green = colour \ 256 And &HFF
blue = colour \ 256 ^ 2 And &HFF

End Function


--

HTH

RP
(remove nothere from the email address if mailing direct)


"quartz" wrote in message
...
I am using Office 2003 on Windows XP.

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the

file.

Does anyone have a function that will retrieve the current color mixes
(RGB)? If so, could you please post example code or a function? (Please

note
that I already know how to custom mix the colors and add them to the

palette,
access them, etc). OR if someone has an easier solution to this issue,

please
post any suggestions...

Thanks much in advance.



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Obtain current RGB settings for color indexes 17 thru 27

Thanks Bob.
Forgive my ignorance, but how can I get this info into cells in a sheet?


"Bob Phillips" wrote:

Sub test()
Dim red, green, blue
GetRGB ActiveWorkbook.Colors(17), red, green, blue
Debug.Print red
Debug.Print green
Debug.Print blue
End Sub

Public Function GetRGB(colour As Long, ByRef red, ByRef green, ByRef blue)

red = colour And &HFF
green = colour \ 256 And &HFF
blue = colour \ 256 ^ 2 And &HFF

End Function


--

HTH

RP
(remove nothere from the email address if mailing direct)


"quartz" wrote in message
...
I am using Office 2003 on Windows XP.

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the

file.

Does anyone have a function that will retrieve the current color mixes
(RGB)? If so, could you please post example code or a function? (Please

note
that I already know how to custom mix the colors and add them to the

palette,
access them, etc). OR if someone has an easier solution to this issue,

please
post any suggestions...

Thanks much in advance.




  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,272
Default Obtain current RGB settings for color indexes 17 thru 27

What exactly do you want to retrieve, the separate red green blue
components, the colour value, or what? Separate cells, all in one? How will
you pass the colour to be evaluated?

--

HTH

RP
(remove nothere from the email address if mailing direct)


"quartz" wrote in message
...
Thanks Bob.
Forgive my ignorance, but how can I get this info into cells in a sheet?


"Bob Phillips" wrote:

Sub test()
Dim red, green, blue
GetRGB ActiveWorkbook.Colors(17), red, green, blue
Debug.Print red
Debug.Print green
Debug.Print blue
End Sub

Public Function GetRGB(colour As Long, ByRef red, ByRef green, ByRef

blue)

red = colour And &HFF
green = colour \ 256 And &HFF
blue = colour \ 256 ^ 2 And &HFF

End Function


--

HTH

RP
(remove nothere from the email address if mailing direct)


"quartz" wrote in message
...
I am using Office 2003 on Windows XP.

I want to retrieve the current color mix values (RGB) for the current

user
of an Excel file (for index 17 through 27) and store these settings in

a
hidden sheet. I then plan to add some custom color mixes for use with

a
program, then restore the user's original colors when the user exits

the
file.

Does anyone have a function that will retrieve the current color mixes
(RGB)? If so, could you please post example code or a function?

(Please
note
that I already know how to custom mix the colors and add them to the

palette,
access them, etc). OR if someone has an easier solution to this issue,

please
post any suggestions...

Thanks much in advance.






  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,600
Default Obtain current RGB settings for color indexes 17 thru 27

quartz" wrote in message

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the

file.

You don't need individual RGB values, just the Long colour value:
x = Activeworkbook.Colors(17)

When changing more than one palette colour it's much "smoother" to apply all
56 in one go. Here's a total package for you, albeit only for colours 17 &
18.

Sub SavePalette()
Dim i As Byte
Dim vArr, vMyColors
Dim rng As Range

ActiveSheet.Range("a1:bd1") = ActiveWorkbook.Colors
vArr = ActiveWorkbook.Colors

vMyColors = Array(13097698, 12229775)
For i = 0 To 1
vArr(i + 17) = vMyColors(i)
Next
ActiveWorkbook.Colors = vArr

End Sub

Sub RestorePalette()
ActiveWorkbook.Colors = ActiveSheet.Range("a1:bd1").Value
End Sub

Obviously set a reference to a similar sized range in your hidden sheet,
enlarge the vMyColors array and loop to suit. Note vArr is "one base" and
vMyColors "zero base" (unless you've set Option Base).
Alternatively, you can save and restore the palette to a Named array, which
could be hidden.

To convert your own RGB to a Long
x = rgb(226,218,199)

Regards,
Peter T




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Obtain current RGB settings for color indexes 17 thru 27

Nevermind Bob, I figured it out...

For lngX = 17 To 27
GetRGB ActiveWorkbook.Colors(lngX), argRed, argGreen, argBlue
ActiveSheet.Range("A1:C1").Offset(lngX - 17, 0).Value = Array(argRed,
argGreen, argBlue)
Next lngX

Thanks much.

"quartz" wrote:

Thanks Bob.
Forgive my ignorance, but how can I get this info into cells in a sheet?


"Bob Phillips" wrote:

Sub test()
Dim red, green, blue
GetRGB ActiveWorkbook.Colors(17), red, green, blue
Debug.Print red
Debug.Print green
Debug.Print blue
End Sub

Public Function GetRGB(colour As Long, ByRef red, ByRef green, ByRef blue)

red = colour And &HFF
green = colour \ 256 And &HFF
blue = colour \ 256 ^ 2 And &HFF

End Function


--

HTH

RP
(remove nothere from the email address if mailing direct)


"quartz" wrote in message
...
I am using Office 2003 on Windows XP.

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the

file.

Does anyone have a function that will retrieve the current color mixes
(RGB)? If so, could you please post example code or a function? (Please

note
that I already know how to custom mix the colors and add them to the

palette,
access them, etc). OR if someone has an easier solution to this issue,

please
post any suggestions...

Thanks much in advance.




  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Obtain current RGB settings for color indexes 17 thru 27

Thanks Peter, but your method doesn't allow me to first get the current
settings. i.e. if the user has already mixed some custom colors of their own,
I need to get those so I can reset them when the user closes my program
file...

You did supply some helpful info though, such as how to convert to a long.
Thanks again.

"Peter T" wrote:

quartz" wrote in message

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the

file.

You don't need individual RGB values, just the Long colour value:
x = Activeworkbook.Colors(17)

When changing more than one palette colour it's much "smoother" to apply all
56 in one go. Here's a total package for you, albeit only for colours 17 &
18.

Sub SavePalette()
Dim i As Byte
Dim vArr, vMyColors
Dim rng As Range

ActiveSheet.Range("a1:bd1") = ActiveWorkbook.Colors
vArr = ActiveWorkbook.Colors

vMyColors = Array(13097698, 12229775)
For i = 0 To 1
vArr(i + 17) = vMyColors(i)
Next
ActiveWorkbook.Colors = vArr

End Sub

Sub RestorePalette()
ActiveWorkbook.Colors = ActiveSheet.Range("a1:bd1").Value
End Sub

Obviously set a reference to a similar sized range in your hidden sheet,
enlarge the vMyColors array and loop to suit. Note vArr is "one base" and
vMyColors "zero base" (unless you've set Option Base).
Alternatively, you can save and restore the palette to a Named array, which
could be hidden.

To convert your own RGB to a Long
x = rgb(226,218,199)

Regards,
Peter T



  #8   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 441
Default Obtain current RGB settings for color indexes 17 thru 27

Sorry, I missed it somehow...I see how your method works...thanks for another
angle on this issue.

"Peter T" wrote:

quartz" wrote in message

I want to retrieve the current color mix values (RGB) for the current user
of an Excel file (for index 17 through 27) and store these settings in a
hidden sheet. I then plan to add some custom color mixes for use with a
program, then restore the user's original colors when the user exits the

file.

You don't need individual RGB values, just the Long colour value:
x = Activeworkbook.Colors(17)

When changing more than one palette colour it's much "smoother" to apply all
56 in one go. Here's a total package for you, albeit only for colours 17 &
18.

Sub SavePalette()
Dim i As Byte
Dim vArr, vMyColors
Dim rng As Range

ActiveSheet.Range("a1:bd1") = ActiveWorkbook.Colors
vArr = ActiveWorkbook.Colors

vMyColors = Array(13097698, 12229775)
For i = 0 To 1
vArr(i + 17) = vMyColors(i)
Next
ActiveWorkbook.Colors = vArr

End Sub

Sub RestorePalette()
ActiveWorkbook.Colors = ActiveSheet.Range("a1:bd1").Value
End Sub

Obviously set a reference to a similar sized range in your hidden sheet,
enlarge the vMyColors array and loop to suit. Note vArr is "one base" and
vMyColors "zero base" (unless you've set Option Base).
Alternatively, you can save and restore the palette to a Named array, which
could be hidden.

To convert your own RGB to a Long
x = rgb(226,218,199)

Regards,
Peter T



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
Vlookup using concatenated column indexes Matt Excel Worksheet Functions 7 June 9th 08 02:07 AM
Change tab color based on current color of a cell MarkT Excel Discussion (Misc queries) 0 May 22nd 08 05:46 PM
how can one obtain the current selected cell value Susan Hayes Excel Programming 3 December 14th 04 10:31 AM
multiple chart indexes Jack Excel Programming 1 August 4th 04 05:26 AM
Figuring out what the Shape Indexes are. Jeff Reed Excel Programming 1 August 21st 03 11:44 PM


All times are GMT +1. The time now is 02:11 AM.

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

About Us

"It's about Microsoft Excel"