|Boy, that code looks familiar...I wonder who wrote it. ;-)|
Let me make sure I understand your requirements:
Is this what you want to do?
1 - Columns A - F are available for data input.
2 - Users can enter data in any cells that do not contain data, and even go back and change that data, as long as they don't save the workbook.
3 - Once the workbook is saved, any cells that have data in them, and only cells that have data in them should be locked, preventing any changes from being made.
4 - Data cannot be entered into Columns G or beyond. In other words those cells are always locked.
Is that correct?
Start by creating a backup copy of your workbook to test this in.
1 - Select Columns A - F
2 - Unlock those cells.
3 - Protect the sheet, Password = Secret
4 - Open the VBA editor
5 - Double-Click the ThisWorkbook module
6 - Paste this code in the pane that opens.
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Set c = .Find("*")
firstAddress = c.Address
c.Locked = True
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress