macro to disallow shading in certain columns

T

Tami

i have a spreadsheet that is protected so i have a macro to allow users to
shade or unshade cells. The macro basically says if the cell is no-color,
shade green, if its already green shade it no-color, if its any other color
already, then don't allow to shade over.

now they use it to shade anything they can so i need to limit it to select
columns.
for simplicity, say my spreadsheet is A:Z, they are allowed to shade in
columns F, k, P-T and X-Z. can some one advise me on how to modify my macro?
thanks, Tami


With Selection.Interior
If .ColorIndex = 35 Then
.ColorIndex = xlNone
Else
If .ColorIndex = xlNone Then
.ColorIndex = 35
Else
MsgBox ("Error: One or more of the cells you highlighted cannot
be shaded.")
End If
End If
End With

End Sub
 
D

Dave Peterson

Maybe something like:

Option Explicit
Sub testme()

Dim myCell As Range
Dim myRng As Range
Dim RngToInspect As Range
Dim wks As Worksheet
Dim FoundAnError As Boolean

Set wks = ActiveSheet

With wks
Set RngToInspect = .Range("F:F,K:K,P:T,x:z")
Set myRng = Nothing
On Error Resume Next
Set myRng = Intersect(Selection, RngToInspect)
On Error GoTo 0

If myRng Is Nothing Then
MsgBox "selection not in authorized range"
Exit Sub
End If

.Unprotect

FoundAnError = False
For Each myCell In myRng.Cells
With myCell.Interior
If .ColorIndex = 35 Then
.ColorIndex = xlNone
Else
If .ColorIndex = xlNone Then
.ColorIndex = 35
Else
FoundAnError = True
End If
End If
End With
Next myCell

.Protect

End With

If FoundAnError = True Then
MsgBox "Error: One or more of the cells you " _
& "highlighted cannot be shaded."
End If

End Sub
 

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

Top