Vilas knows that he can protect a worksheet so that users cannot delete cells. However, he has a need to prevent the deletion of cells without using worksheet protection. (Vilas is not talking about the clearing of cell contents, but the actual deletion of cells so that surrounding cells must move left or move up.) He wonders if there is a way to prevent a user from deleting cells, without protecting the worksheet.
There is no direct way to do this in Excel. It would be nice if Excel provided a way to create an event handler that was called whenever a cell was deleted, but it does not. (The Worksheet_Change event is apparently triggered whenever the contents of a cell are changed, but not when a cell is entirely deleted.) Because of this, using a macro to protect your cells from being deleted is not the way to go.
The best solution we've been able to find involves taking advantage of a quirk in how Excel handles array formulas. For the sake of example, let's assume that you have data in the range A1:L37, and you don't want any cells within this range to be deleted. Follow these general steps:
At this point you cannot delete any cell within the data block (A1:L37), nor can you delete any row 1 through 37 or any column A through L. Whenever you try, Excel displays a message that says "You cannot change part of an array." The only way to delete cells, rows, or columns within the data block is to first get rid of the array formulas that would be affected. In other words, you would need to delete column M or row 38 first.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (10255) applies to Microsoft Excel 97, 2000, 2002, and 2003. You can find a version of this tip for the ribbon interface of Excel (Excel 2007 and later) here: Stopping the Deletion of Cells.
Comprehensive VBA Guide Visual Basic for Applications (VBA) is the language used for writing macros in all Office programs. This complete guide shows both professionals and novices how to master VBA in order to customize the entire Office suite for their needs. Check out Mastering VBA for Office 2010 today!
Need to get rid of everything in a worksheet except the formulas? It's easier to make this huge change than you think it is.
Discover MoreWhen you want to remove information from a worksheet, you can either clear cells or delete cells. This tip examines the ...
Discover MoreGot a list of data from which you want to delete duplicates? There are a couple of techniques you can use to get rid of ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2016-10-25 19:22:46
Mosco
I want to prevent anyone to eddit/change worksheet name. Is there a way to do that?
2016-09-22 16:44:58
Teresa
I applied this array and now all users are hampered by the fact they cannot SORT data. They can filter it but not sort it.
Is there a way to allow sorting w/out removing the array that prevents deletion of rows/columns/cells?
Or another method to prevent deletion of rows/columns/cells without protecting the document?
Thanks!
2016-05-24 02:23:36
SOne
This seems like a useful workaround, if sheet protection is undesireable and you have the available space.
Are there any similar workarounds or methods to prevent clearing a cell or range of cells, when sheet protection is disabled?
Got a version of Excel that uses the menu interface (Excel 97, Excel 2000, Excel 2002, or Excel 2003)? This site is for you! If you use a later version of Excel, visit our ExcelTips site focusing on the ribbon interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2021 Sharon Parq Associates, Inc.
Comments