Clear Shaded Cells

  • Thread starter Thread starter Ed Davis
  • Start date Start date
E

Ed Davis

Is there a way to clear all shaded cells in a worksheet using a macro?

I have received a lot of help from this news group.
Thank you very much.
 
Or just get the entire range at once:

ActiveSheet.UsedRange.Interior.ColorIndex = xlNone

or even do all the cells:
activesheet.cells.Interior.ColorIndex = xlNone
 
Thank you for the quick response.
I was looking to only clear the data not the shade as the shaded areas show
the user where the data goes.
 
Option Explicit
Sub testme()

Dim myCell As Range
Dim myRng As Range

Set myRng = Selection 'ActiveSheet.usedrange

For Each myCell In myRng.Cells
If myCell.Interior.ColorIndex = 3 Then
myCell.ClearContents
End If
Next myCell

End Sub

Record a macro when you change the colorindex of a cell. Then use that in place
of the 3.

Select the range you want before you run the code. Or use the UsedRange if you
want.
 
For Each mycell In ActiveSheet.UsedRange
If mycell.Interior.ColorIndex <> xlNone Then
mycell.ClearContents
End If
Next mycell


Gord Dibben MS Excel MVP
 
This is what I get when I record the macro:
I tried to use xlAutomatic Did not work
I tried to use 3 did not work
Then I tried to use 0.599993896298105 and that did not work either.
I even tried to use the 0 and that did not work either.



Range("B17").Select
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent3
.TintAndShade = 0.599993896298105
.PatternTintAndShade = 0
End With
 
I get the following error
cannot clear part of a merged cell.
I only had 1 merged cell that was shaded and even after removing the merge
and the shade I still get the same error.
Can anyone tell me if there is a way around this.




Ed Davis said:
I get cannot clear part of a merged cell. with this code
 
Dim myCell As Range
Dim myRng As Range

Set myRng = Selection 'ActiveSheet.usedrange
For Each myCell In myRng.Cells
If myCell.MergeArea.Cells(1).Interior.ColorIndex <> xlNone Then
myCell.Value = ""
End If
Next myCell

Ed said:
I get cannot clear part of a merged cell. with this code
 
Hi Dave
I copied and pasted this and absolutely nothing happens no errors and
nothing changed on the sheet
Thanks for your help Dave.


Dim myCell As Range
Dim myRng As Range

Set myRng = Selection 'ActiveSheet.usedrange
For Each myCell In myRng.Cells
If myCell.MergeArea.Cells(1).Interior.ColorIndex <> xlNone Then
myCell.Value = ""
End If
Next myCell
 
Did you select a range before running the macro?

If you don't want to select a range go back to Activesheet.usedrange instead
of selection.


Gord
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Back
Top