#1
|
|||
|
|||
Clear data from unlocked cells
Hi All, I have a workbook that is used as a service report. I developed the form in Excel 2010, and used it without problem with Excel 2010 and 2013. When I upgraded to Office 2016, the code that I was using to clear the data stopped working. It's saying that I'm trying to change cells in protected sheet. Well that's the point - I want to change only the values on the protected sheet with the cells that are unlocked, so I make sure first that the worksheet is protected. As I said, the code worked fine on Excel 2010 and 2013. Here it is:
Code:
Sub ClearUnlockedCells() Dim msg As String, ans As Variant msg = "Completing this action will delete all form data! Continue?" ans = msgbox(msg, vbOKCancel, "Z-Models SCP Info") Select Case ans Case vbOK Application.ScreenUpdating = False 'On Error Resume Next Application.DisplayAlerts = False For Each ws In ActiveWorkbook.Worksheets With ws .Cells.Value = vbNullString End With Next ws Application.DisplayAlerts = True Application.ScreenUpdating = True Case vbCancel End Select Sheets("General Data").Range("B4").Select End Sub |
#2
|
|||
|
|||
Maybe the cells that were once unprotected are somehow changed to protected?
You can also place this in your code: Code:
ActiveSheet.Unprotect then at the end of your code: Code:
ActiveSheet.Protect |
#3
|
|||
|
|||
Thanks for your reply. I tried your suggestion (unlock worksheet first) and as I expected, the result was that all data on the worksheet was deleted - all text and formulas. I can run the code on a system running Office 2013 or 2010, it works just fine.
I'm curious, is it possible to open the document in compatibility mode for those versions in 2016? |
#4
|
|||
|
|||
Hi, I decided to change the code to reference named ranges instead of "UsedRange". However I am getting error 1004, Application or Object Defined Error on the line which is in red. I can't figure this out... Modified code:
Code:
Sub ClearUnlockedCells() Dim msg As String, ans As Variant msg = "Completing this action will delete all form data! Continue?" ans = msgbox(msg, vbOKCancel, "Z-Models SCP Info") Select Case ans Case vbOK Application.ScreenUpdating = False 'On Error Resume Next Application.DisplayAlerts = False Range("Z_GD") = "" Application.DisplayAlerts = True Application.ScreenUpdating = True Case vbCancel End Select Sheets("General Data").Range("B4").Select End Sub |
#5
|
||||
|
||||
Your original code doesn't work for me on 2010 unless I uncomment the On Error Resume Next line.
|
#6
|
|||
|
|||
Thanks for your reply. In this case, when I changed the code to reference named ranges, I had to unlock the worksheets prior to clearing the named ranges. Now it's working...
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Copy data from certain Cells in new sheet | zain_shaikh | Excel Programming | 1 | 02-11-2015 07:35 PM |
How to populate cells in Sheet2 with Data Source query using cell data from Sheet1 | bobznkazoo | Excel | 2 | 03-27-2014 11:14 AM |
data in some cells moving | Sherriann | Excel | 1 | 08-07-2013 06:52 AM |
How can I fill the below emty cells with above cell data? | Learner7 | Excel | 8 | 06-28-2011 12:10 PM |
How to combine different cells data in one cell? | Learner7 | Excel | 1 | 07-28-2010 12:07 PM |