I want to auto lock cell while i'm saving my worksheet
Can you help me how to do this in vba
Supposing you have a worksheet and just a certain range of blank cells needs data entry, and after finishing inputting data, you need the cells to be locked automatically in order to prevent changes again. How can you do to achieve it? This article can help you.
For example, the certain range of blank cells is A1:F8. Please do as follows to lock these cells after data entry in Excel.
1. Please unlock this range first, select the cells and right-clicking, then choose Format Cells in the right-clicking menu, and in the Format Cells dialog box, unchecking the Locked box under the protection tab, and finally clicking the OK button. See screenshot:
2. Click Review > Protect Sheet. And specify a password to protect this worksheet.
3. Right click the sheet tab, select View Code from the right-clicking menu. Then copy and paste the below VBA code into the Code window. See screenshot:
VBA code: Lock or protect cells after data entry or input
Dim mRg As Range Dim mStr As String Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) If Not Intersect(Range("A1:F8"), Target) Is Nothing Then Set mRg = Target.Item(1) mStr = mRg.Value End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim xRg As Range On Error Resume Next Set xRg = Intersect(Range("A1:F8"), Target) If xRg Is Nothing Then Exit Sub Target.Worksheet.Unprotect Password:="123" If xRg.Value <> mStr Then xRg.Locked = True Target.Worksheet.Protect Password:="123" End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range("A1:F8"), Target) Is Nothing Then Set mRg = Target.Item(1) mStr = mRg.Value End If End Sub
Note: In the code, “A1:F8” is the range you need to input data; and “123” is the password of this protected worksheet. Please change them as you need.
4. Press Alt + Q keys simultaneously to close the Microsoft Visual Basic for Applications window.
After finishing entering data to the cells of range A1:F8, they will be locked automatically. And you will get a prompt dialog box if you try to change any cell content of this range. See screenshot: