ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   count shaded cells with a gradient fill (https://www.excelbanter.com/excel-programming/444801-count-shaded-cells-gradient-fill.html)

AndreasHermle

count shaded cells with a gradient fill
 
Dear Experts:
below macro counts the number of shaded cells in the selection.

I wonder whether the below macro can be re-written to consider
gradient fills as well, i.e. ...
.... e.g. I got a gradient fill with two colors (light blue RGB 220,
230, 242 and dark blue RGB 79, 129, 189), the gradient pattern is
horizontal.

Help is much appreciated. Thank you very much in advance.

Regards, Andreas

Sub grey_count()
Dim lastcell As Variant
Dim firstcell As Variant
Dim Cell As Range
Dim x As Long
lastcell = Cells.SpecialCells(xlCellTypeLastCell).Address
firstcell = "A1"
Range(firstcell & ":" & lastcell).Select
For Each Cell In Selection
If Cell.Interior.Color = RGB(234, 234, 234) Then x = x + 1
Next
MsgBox x & " cells are grey (234, 234, 234)"
End Sub

Jim Cone[_2_]

count shaded cells with a gradient fill
 

The easiest way is to check if the cell has shading of any type...
"If ActiveCell.Interior.ColorIndex < xlColorIndexNone Then x = x + 1"
This should work in all xl versions, however, in xl2007+ all color values were changed so you
should thoroughly test it.
--
Jim Cone
Portland, Oregon USA
http://www.mediafire.com/PrimitiveSoftware
('Shade Data Rows' the way you want them)



"AndreasHermle"
wrote in message
...
Dear Experts:
below macro counts the number of shaded cells in the selection.

I wonder whether the below macro can be re-written to consider
gradient fills as well, i.e. ...
... e.g. I got a gradient fill with two colors (light blue RGB 220,
230, 242 and dark blue RGB 79, 129, 189), the gradient pattern is
horizontal.

Help is much appreciated. Thank you very much in advance.

Regards, Andreas

Sub grey_count()
Dim lastcell As Variant
Dim firstcell As Variant
Dim Cell As Range
Dim x As Long
lastcell = Cells.SpecialCells(xlCellTypeLastCell).Address
firstcell = "A1"
Range(firstcell & ":" & lastcell).Select
For Each Cell In Selection
If Cell.Interior.Color = RGB(234, 234, 234) Then x = x + 1
Next
MsgBox x & " cells are grey (234, 234, 234)"
End Sub




Jim Cone[_2_]

count shaded cells with a gradient fill
 

Actually that should have been "Cell" not "ActiveCell"...
"If Cell.Interior.ColorIndex < xlColorIndexNone Then x = x + 1"




"Jim Cone"
wrote in message
...

The easiest way is to check if the cell has shading of any type...
"If ActiveCell.Interior.ColorIndex < xlColorIndexNone Then x = x + 1"
This should work in all xl versions, however, in xl2007+ all color values were changed so you
should thoroughly test it.
--
Jim Cone
Portland, Oregon USA
http://www.mediafire.com/PrimitiveSoftware
('Shade Data Rows' the way you want them)




AndreasHermle

count shaded cells with a gradient fill
 
On Jul 24, 2:12*am, "Jim Cone" wrote:
Actually that should have been "Cell" not "ActiveCell"...
* *"If Cell.Interior.ColorIndex < xlColorIndexNone Then x = x + 1"

"Jim Cone"
wrote in ...









The easiest way is to check if the cell has shading of any type...
* "If ActiveCell.Interior.ColorIndex < xlColorIndexNone Then x = x + 1"
This should work in all xl versions, however, in xl2007+ *all color values were changed so you
should thoroughly test it.
--
Jim Cone
Portland, Oregon USA
http://www.mediafire.com/PrimitiveSoftware
('Shade Data Rows' the way you want them)


Hi Jim,

oops, I inadvertently did not give you any feedback to your post.
Sorry about this.

Ok, thank you very much for your valuable and professional help. This
is a very good piece of advice.

Regards, Andreas


All times are GMT +1. The time now is 12:15 AM.

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