![]() |
|
|
|
#1
|
||||
|
||||
|
Kreol2013: Ultimately, this is a question of what constitutes the sorting criteria. Simply say 'by shades of colors' is quite ambiguous. What are your criteria for 'shades of colors'? One could, for example, sort by the R, G or B values in the RGB colour scheme, or by the C, M, Y, K values in the CMYK colour scheme or by the H, S, L values in the HSL colour scheme. You need to work out what your criteria are according to one of these schemes. Compared to C, M, Y, K or H, S, L, it's quite easy to do R, G, B sorts because Excel works in the RGB colour scheme; conversions (for which algorithms are available) would be required for the others. Using the RGB colour scheme, for example, you could sort by Red, Green or Blue intensity, with one or more of the others as a secondary/tertiary criterion, each in ascending or descending order.
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
#2
|
|||
|
|||
|
Hi!
Yes, eventually I stopped on the circuit HSV Hue sorting ascending Value sorting ascending Sat sorting descending Thank you sample code: Code:
Sub test()
For i = 2 To 5000
sHexVal = Cells(i, 5).Value
If (sHexVal <> "") Then
Call RGBtoHSV(Cells(i, 6).Value, Cells(i, 7).Value, Cells(i, 8).Value, i)
End If
Next i
End Sub
Sub RGBtoHSV(Red, Green, Blue, y)
Dim min As Double, max As Double, delta As Double
If Red <= Green And Red <= Blue Then min = Red
If Green <= Red And Green <= Blue Then min = Green
If Blue <= Red And Blue <= Green Then min = Blue
If Red >= Green And Red >= Blue Then max = Red
If Green >= Red And Green >= Blue Then max = Green
If Blue >= Red And Blue >= Green Then max = Blue
Value = max
delta = max - min
If Not delta = 0 Then
Sat = delta / max
Else
Sat = 0
Hue = 0
Cells(y, 9).Value = Sat
Cells(y, 10).Value = Hue
Cells(y, 11).Value = Value
Exit Sub
End If
If Red = max Then
Hue = (Green - Blue) / delta
ElseIf Green = max Then
Hue = 2 + (Blue - Red)
Else
Hue = 4 + (Red - Green) / delta
End If
Hue = Hue * 60
If Hue < 0 Then Hue = Hue + 360
Cells(y, 9).Value = Sat
Cells(y, 10).Value = Hue
Cells(y, 11).Value = Value
End Sub
|
|
| Thread Tools | |
| Display Modes | |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
How to Sort Table Cells from Left to Right
|
tamaracklodge | Word Tables | 4 | 03-04-2013 04:00 AM |
Unable to change font colors from theme colors
|
choy | Word | 3 | 08-01-2012 09:12 PM |
Auto Colors in Cells?
|
Learner7 | Excel | 5 | 07-06-2010 10:55 PM |
| How can I change the colors of cells automatically based on Job Completion? | Learner7 | Excel | 0 | 07-06-2010 10:47 PM |
| Count range cells eliminating merge cells | danbenedek | Excel | 0 | 06-15-2010 12:40 AM |