ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   macro to disallow shading in certain columns (https://www.excelbanter.com/excel-worksheet-functions/251367-macro-disallow-shading-certain-columns.html)

Tami

macro to disallow shading in certain columns
 
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




Dave Peterson

macro to disallow shading in certain columns
 
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


Tami wrote:

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


--

Dave Peterson

Tami

macro to disallow shading in certain columns
 
Dave,
Pure genius! thank you.
happy holidays,
Tami

"Dave Peterson" wrote:

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


Tami wrote:

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


--

Dave Peterson
.



All times are GMT +1. The time now is 02:03 PM.

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