VBA Code to Protect Excel Sheet for Manual Input but Allow Programming Inputs

VBA Code to Protect Excel Sheet

Did you come across any requirement where you want the user to interact with a sheet only through VBA Form? A common way to achieve this is using Unprotect function available in VBA before making changes to the sheet and then protect it back using Protect function. See below an example:

VBA Code to Protect Excel SheetExample:

Sheet1.Unprotect "123"
Sheet1.Range("A1").Value = "ABC"
Sheet1.Protect "123"

While this code works well but has small limitation, the code will produce error when Excel file is in Shared Mode. This is because you are not allowed to protect or unprotect a sheet when shared mode is on.

Here is a simple code which can help you here:

VBA Code:

Sheet1.Protect Password:="123", UserInterfaceOnly:=True

In the code you will notice that UserInterfaceOnly has been passed as True that does the trick. If you protect a sheet with UserInterfaceOnly as True then Excel allows VBA to write data on the sheet without unprotecting it.

Please note that this code needs to be executed once before you share the file.

VBA Code to protect Excel sheet

Download Practice File

You can also practice this through our practice files. Click on the below link to download the practice file.

Recommended Articles

Custom Calendar Control for MS Access​

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *