Forum Discussion

Janedb's avatar
Janedb
Iron Contributor
Feb 03, 2021
Solved

Excel worksheet protect from editing in excel

Hi. I want to create a spreadsheet and protect the sheet from editing. The user would be able to add data but not edit after that. Can someone assist?
  • HansVogelaar's avatar
    Feb 03, 2021

    Janedb 

    It's possible if you're willing to use VBA.

    Step 1:

    • Select all the cells that the user should be able to fill.
    • Press Ctrl+1 to activate the Format Cells dialog.
    • Activate the Protection tab.
    • Clear the Locked check box.
    • Click OK.

    Step 2:

    • Activate the Review tab of the ribbon.
    • Click 'Protect Sheet'.
    • Specify what the user should be able to do.
    • At the very least, leave the check box 'Select unlocked cells' ticked.
    • If desired, specify a password that will be needed to unlock the sheet. If you do, make sure you remember it!
    • Click OK.
    • If you specified a password, you'll have to enter it again as confirmation.

    Step 3:

    • Right-click the sheet tab.
    • Select 'View Code' from the context menu.
    • Copy the following code into the worksheet module:
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim rng As Range
        Me.Unprotect Password:="secret"
        For Each rng In Target
            If rng.Value <> "" Then
                rng.Locked = True
            End If
        Next rng
        Me.Protect Password:="secret"
    End Sub
    • Replace "secret" with the password you used; if you didn't specify a password, use "".
    • Switch back to Excel.
    • Save the workbook as a macro-enabled workbook (.xlsm).
    • Make sure that the user allows macros when they open the workbook.

Resources