VBA Lock Formula (given) Doesn't Allow Filtering/Highlighting/Font Change

CuriousForge

New Member
Joined
Aug 20, 2018
Messages
24
I do not how to write VBA codes, however this VBA formula I found on the internet allows me to lock cells after data entry as intended.

It doesn't allow Filtering cells, cell highlighting or font modification for protected cells. Can someone help me modify this so it allows filtering/highlighting cells/font modifications.

Private Sub Worksheet_Change(ByVal Target As Range)
Const strPassword = "secret"
Dim rngEdit As Range
Dim cel As Range
Set rngEdit = Intersect(Range("B2:B20,D2:D20"), Target)
If Not rngEdit Is Nothing Then
Application
.EnableEvents = False
Me.Unprotect Password:=strPassword
For Each cel In rngEdit
cel
.Locked = (cel.Value <> "")
Next cel
Me.Protect Password:=strPassword
Application
.EnableEvents = True
End If
End Sub
 

Excel Facts

Lock one reference in a formula
Need 1 part of a formula to always point to the same range? use $ signs: $V$2:$Z$99 will always point to V2:Z99, even after copying
Try:
Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)

    Const strPassword = "secret"
    
    Dim rngEdit As Range
    Dim cel     As Range

    Set rngEdit = Intersect(Range("B2:B20,D2:D20"), Target)
    
    If Not rngEdit Is Nothing Then
        Application.EnableEvents = False
        
        Me.Unprotect Password:=strPassword
        
        For Each cel In rngEdit
            cel.Locked = (cel.Value <> "")
        Next cel
        
        Me.Protect Password:=strPassword, AllowFormattingCells:=True, AllowFiltering:=True
        
        Application.EnableEvents = True
    End If
    
End Sub
 
Last edited:
Upvote 0

Forum statistics

Threads
1,223,909
Messages
6,175,310
Members
452,634
Latest member
cpostell

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top