Forum Discussion
Janedb
Feb 03, 2021Iron Contributor
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?
- Feb 03, 2021
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.
mtarler
Feb 03, 2021Silver Contributor
Janedb Another option is to use a Form to add entries. If other people already are intended to access it then it is possible/likely that you have the Excel file online (i.e. in Sharepoint) and you could create a Sharepoint Form to linked to the sheet and add the new entries as needed. Note you can also do this on the desktop version using VBA.