VBA Code HELP!!!

BigCountry37

New Member
Joined
Oct 22, 2009
Messages
15
Trying to write a code that will accomplish the following:
1. If cell "H16" is "Yes" then unlock range E47:E53
2. If cell "H16" is "No" then fill range E47:E53 with zero's and lock.

Given-working on Sheet5, and let me know if the range E47:E53 needs to be normally locked or unlocked. Also sheet will be protected with a password.

Please help!!
 

Excel Facts

How to total the visible cells?
From the first blank cell below a filtered data set, press Alt+=. Instead of SUM, you will get SUBTOTAL(9,)
Try this - the cells should be unlocked to begin with:

Code:
Sub LockRange()
With Sheets("Sheet5")
    .Unprotect Password:="abc"
    Select Case .Range("H16").Value
        Case "No": .Range("E47:E53").Locked = False
        Case "Yes": .Range("E47:E53").Value = 0: .Range("E47:E53").Locked = True
    End Select
    .Protect Password:="abc"
End With
End Sub
 
Upvote 0
started out with this...it's close, but not filling in 0's and it's locking out the E47:E53 range in both cases...."Yes" and "No" in H16.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
' Locks range if condition is met
If (Intersect(Target, Range("$H16")) Is Nothing) Then Exit Sub

If Range("H16").Value = "Yes" Then
ActiveSheet.Unprotect Password:="password"
Range("E47:E53").Select
Selection.Locked = False
ActiveSheet.Protect Password:="password"

Else
ActiveSheet.Unprotect Password:="password"
Range("E47:E53").Select
Selection.Locked = True
ActiveSheet.Protect Password:="password"

End If


End Sub
 
Upvote 0
I just tested it and it works for me. You need to enter a Yes or No in H16 then run the macro.
 
Upvote 0
This works for me.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) <> "H16" Then Exit Sub
With Me
    .Unprotect Password:="abc"
    Select Case .Range("H16").Value
        Case "No": .Range("E47:E53").Locked = False
        Case "Yes": .Range("E47:E53").Value = 0: .Range("E47:E53").Locked = True
    End Select
    .Protect Password:="abc"
End With
End Sub
 
Upvote 0
Glad it is working. You can make it case insensitive like this

Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(False, False) <> "H16" Then Exit Sub
With Me
    .Unprotect Password:="abc"
    Select Case LCase(.Range("H16").Value)
        Case "no": .Range("E47:E53").Locked = False
        Case "yes": .Range("E47:E53").Value = 0: .Range("E47:E53").Locked = True
    End Select
    .Protect Password:="abc"
End With
End Sub
 
Upvote 0

Forum statistics

Threads
1,215,073
Messages
6,122,970
Members
449,095
Latest member
Mr Hughes

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