How to prevent specific cell contents from being deleted in Excel?

This article is talking about preventing specific cell contents from being deleted in Excel. You can achieve it with the methods in this article.

Prevent specific cell contents from being deleted by protecting the worksheet
Prevent specific cell contents from being deleted by using VBA code


Prevent specific cell contents from being deleted by protecting the worksheet


By default, all cells in worksheet are locked. If you want to prevent specific cell contents from being deleted, and make other cells editable after protecting, please do as follows.

1. Click the button on the top left corner of worksheet to select the whole worksheet. Then press Ctrl + 1 keys to open the Format Cells dialog box.

2. In the popping up Format Cells dialog box, uncheck the Locked option under the Protection tab, and then click the OK button. See screenshot:

3. Select the cells you don’t want the contents to be deleted, press Ctrl + 1 keys to open the Format Cells dialog box again, check the Locked option under the Protection tab, and then click the OK button.

4. Now click Review > Protect Sheet, then specify and confirm your password in both the Protect Sheet and Confirm Password dialog boxes.

Now the worksheet is protected. And the specified cell contents won’t be deleted any more.


Prevent specific cell contents from being deleted by using VBA code

Besides the above two methods, you can run VBA code to prevent specific cell contents from being deleted in a worksheet. Please do as follows.

1. Open the worksheet which contains the cell contents you don’t want to be deleted, right click the Sheet Tab, and then click View Code from the right-clicking menu.

2. Copy and paste the below VBA code into the Code window of the Microsoft Visual Basic for Applications window.

VBA code: Prevent specific cell contents from being deleted in Excel

Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A1:E7")) Is Nothing Then Exit Sub
    On Error GoTo ExitPoint
    Application.EnableEvents = False
    If Not IsDate(Target(1)) Then
        Application.Undo
        MsgBox " You can't delete cell contents from this range " _
        , vbCritical, "Kutools for Excel"
    End If
ExitPoint:
    Application.EnableEvents = True
End Sub

Note: In the code, A1:E17 is the range which the cell contents you will prevent from being deleted. You can change the range based on your needs.

From now on, when you trying to delete cell contents from range A1:E17, you will get a Kutools for Excel dialog box as below screenshot shown, please click the OK button.


Related articles:


The Best Office Productivity Tools

Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%

  • Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
  • Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
  • Merge Cells/Rows/Columns without losing Data; Split Cells Content; Combine Duplicate Rows/Columns... Prevent Duplicate Cells; Compare Ranges...
  • Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
  • Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
  • Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
  • Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
  • Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
  • More than 300 powerful features. Supports Office/Excel 2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features 30-day free trial. 60-day money back guarantee.
kte tab 201905

Office Tab Brings Tabbed interface to Office, and Make Your Work Much Easier

  • Enable tabbed editing and reading in Word, Excel, PowerPoint, Publisher, Access, Visio and Project.
  • Open and create multiple documents in new tabs of the same window, rather than in new windows.
  • Increases your productivity by 50%, and reduces hundreds of mouse clicks for you every day!
officetab bottom
Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    David · 1 months ago
    Hello, this code works well, however deleting row/collumn will bypass it. Is there any workaround to this? Cheers, David.
    • To post as a guest, your comment is unpublished.
      crystal · 1 months ago
      Hi David,
      Which Excel version are you using? I have tried the code, entire rows and columns in the specified range can't be deleted after applying the code.
  • To post as a guest, your comment is unpublished.
    Ahsan · 3 months ago
    "Prevent specific cell contents from being deleted by protecting the worksheet"
    I did as per your guideline, still cell information could be deleted i.e. protection does not work. Any solution.
    • To post as a guest, your comment is unpublished.
      crystal · 2 months ago
      Hi Ahsan,
      Did you apply the VBA method?
      You need to add the VBA to the worksheet code window. Supposing the cell contents you want to protect are in Sheet9, please right click the sheet tab and select View Code from the context menu, and then directly copy the code into the code window as the below image shown.
  • To post as a guest, your comment is unpublished.
    neil · 1 years ago
    VBA Code - Great Tip thanks

    Is there a VBA code to Prevent specific cell contents from being modified AND deleted in Excel?
    Usual protecting sheet does not work for me as I lose the ability to sort data?

    Thanks in advance - Neil
  • To post as a guest, your comment is unpublished.
    George M. · 2 years ago
    If you don't wan to look your sheet or write VBA code, then I use a simple technique that prevents from any override except for when they use the "DELETE" key (backspace won't be allowed, but Delete is hard to stop). What I did is added a data validation with the following settings:

    1) Allow --> List

    2) uncheck "Ignore blank" and "in-cell dropdown"

    3) In the source enter two double quotes (i.e., "")

    4) In Error Alert tab, check "Show error alter after invalid data is entered", select "Stop" for style, then enter an error message and description (e.g., Don't override)

    • To post as a guest, your comment is unpublished.
      crystal · 1 years ago
      Hi,
      Thanks for sharing.
  • To post as a guest, your comment is unpublished.
    Si · 2 years ago
    Hi there,

    I just tried the VBA script and while it works really well in most situations. However it doesn't work when you tab from an editable cell into the non-editable column/cell. The problem arises in that it throws the error message up - as commanded - but it doesn't keep the data that was entered in the original, editable cell which was tabbed from.

    Would you have an amendment to the script so that it accepts the data in the editable cell when you tab into un-editable?

    Cheers
    • To post as a guest, your comment is unpublished.
      crystal · 2 years ago
      Good day,
      I tried as you mentioned in your case, but no error throws. Would you provide a screenshot of your case or tell me your Office version?
      Thanks for your comment.
  • To post as a guest, your comment is unpublished.
    HJR · 3 years ago
    Just what I was looking for, thanks for the help!
    • To post as a guest, your comment is unpublished.
      finn · 3 years ago
      don't worry always here to help :)