How to prevent copy and paste over cell with drop down list in Excel?

For a cell with data validation drop down list, when copy content from another cell and paste to it, the drop down list will be gone and replaced with the new pasting content. In some cases, you want to prevent copy and paste other content over the cell with drop down list, what would you do to deal with it? In this article, you will get a VBA method of dealing with this problem.

Prevent copy and paste over cell with drop down list in Excel


Prevent copy and paste over cell with drop down list in Excel

1. Open the worksheet with the drop down list cell you want to prevent copy and paste.

2. Press Alt + F11 keys simultaneously to open the Microsoft Visual Basic Applications window.

3. In the Microsoft Visual Basic Applications window, double click the current worksheet name in the left pane, then copy and paste the below VBA code into the Code editor. See screenshot:

VBA code: Prevent copy and paste over cell with drop down list

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20200903
    Dim xValue As String
    Dim xCheck1 As String
    Dim xCheck2 As String
    Dim xRg As Range
    Dim xArrCheck1() As String
    Dim xArrCheck2() As String
    Dim xArrValue()
    Dim xCount, xJ As Integer
    Dim xBol As Boolean
'    If Target.Count > 1 Then
'        Exit Sub
'        End If
    xCount = Target.Count
    ReDim xArrCheck1(1 To xCount)
    ReDim xArrCheck2(1 To xCount)
    ReDim xArrValue(1 To xCount)
    Application.EnableEvents = False
    On Error Resume Next
    xJ = 1
    For Each xRg In Target
        xArrValue(xJ) = xRg.Value
         xArrCheck1(xJ) = xRg.Validation.InCellDropdown
        xJ = xJ + 1
    Next

    Application.Undo

    xJ = 1
    For Each xRg In Target
        xArrCheck2(xJ) = xRg.Validation.InCellDropdown
        xJ = xJ + 1
    Next

    xBol = False
    For xJ = 1 To xCount
        If xArrCheck2(xJ) <> xArrCheck1(xJ) Then
            xBol = True
            Exit For
        End If
    Next

    If xBol Then
       MsgBox "The selected cells containg data validation drop-down lists, no pasting allowed."
    Else
        xJ = 1
        For Each xRg In Target
            xRg.Value = xArrValue(xJ)
            xJ = xJ + 1
        Next

    End If

    Application.EnableEvents = True
End Sub

4. Press Alt + Q keys to exit the Microsoft Visual Basic Applications window.

5. When you paste content to a cell with drop down list, a dialog box will pop up to remind you the pasting is no allowed. See screenshot:

Note: This VBA just work in single cell pasting. If you copy and paste in multiple cells, it won’t work.

Easily create drop-down list with checkboxes in Excel:

The Drop-down List with Check Boxes utility of Kutools for Excel can help you easily create drop-down list with checkboxes in a specified range, current worksheet, current workbook or all opened workbooks based on your needs.
Download the full feature 30-day free trail of Kutools for Excel now!


Related articles:

How to create drop down list with multiple checkboxes in Excel?
Many Excel users tend to create drop down list with multiple checkboxes in order to select multiple items from the list per time. Actually, you can’t create a list with multiple checkboxes with Data Validation. In this tutorial, we are going to show you two methods to create drop down list with multiple checkboxes in Excel. This tutorial provides the method to solve the problem.

Create drop down list from another workbook in Excel
It is quite easy to create a data validation drop down list among worksheets within a workbook. But if the list data you need for the data validation locates in another workbook, what would you do? In this tutorial, you will learn how to create a drop fown list from another workbook in Excel in details.

Create a searchable drop down list in Excel
For a drop down list with numerous values, finding a proper one is not an easy work. Previously we have introduced a method of auto completing drop down list when enter the first letter into the drop down box. Besides the autocomplete function, you can also make the drop down list searchable for enhancing the working efficiency in finding proper values in the drop down list. For making drop down list searchable, try the method in this tutorial.

Auto populate other cells when selecting values in Excel drop down list
Let’s say you have created a drop down list based on the values in cell range B8:B14. When you selecting any value in the drop down list, you want the corresponding values in cell range C8:C14 be automatically populated in a selected cell. For solving the problem, the methods in this tutorial will do you a favor.

More tutorials for drop down list...


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.
    Eva · 2 years ago
    I works BUT after you put the code you cannot UNDO anything. Not a single step back is allowed.
  • To post as a guest, your comment is unpublished.
    Dilip · 3 years ago
    No, I did not figure it out. I didn't try to resolve after a while.
  • To post as a guest, your comment is unpublished.
    arvind raj · 3 years ago
    did you manage to resolve the issue of copying and pasting into multiple cells? Thanks in advance!
  • To post as a guest, your comment is unpublished.
    Amit Jain · 3 years ago
    Hi Dilip,

    are you able to fix the issue of allowing data using paste values
  • To post as a guest, your comment is unpublished.
    Amit Jain · 3 years ago
    Hi Dilip,

    are you able to fix the issue of allowing data using paste values..i am also facing the same issue..help me on this please
  • To post as a guest, your comment is unpublished.
    jepson · 4 years ago
    Thank you very much !! works fine for me !!!
    copying into a single cell is restricted.
    but if i copy a list of cells and paste.., the paste is accepted. let me see if i can tune this up ..thanks anyways
    • To post as a guest, your comment is unpublished.
      G · 4 years ago
      Jepson, did you manage to resolve the issue of copying and pasting into multiple cells? Thanks in advance!
  • To post as a guest, your comment is unpublished.
    Abhijeet · 4 years ago
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim xValue As String
    Dim xCheck1 As String
    Dim xCheck2 As String
    If Target.Count > 1 Then
    Exit Sub
    End If
    Application.EnableEvents = False
    xValue = Target.Value
    On Error Resume Next
    xCheck1 = Target.Validation.InCellDropdown
    On Error GoTo 0
    Application.Undo
    On Error Resume Next
    xCheck2 = Target.Validation.InCellDropdown
    On Error GoTo 0
    If xCheck1 = xCheck2 Then
    Target = xValue
    Else
    MsgBox "No pasting allowed!"
    End If
    Application.EnableEvents = True
    End Sub
    This Macro not work when copy from different workbook or worksheet then so please tell me how to avoid these things also
  • To post as a guest, your comment is unpublished.
    chandan · 4 years ago
    Hi,

    above mention vba code is not run.kindly resolve.
  • To post as a guest, your comment is unpublished.
    Jai · 4 years ago
    Hi,

    While I running this macro I got this debug error "Application.Undo". Pls resolve this ASAP
  • To post as a guest, your comment is unpublished.
    Dilip · 5 years ago
    This works but when I paste value this is allowing data which is not from the drop down list. Any way to restrict any value which is not from the list.
    • To post as a guest, your comment is unpublished.
      Rao · 3 years ago
      Hi Dilip,

      Did you able to resolve the issue, i too having similar issue. I have to allow copy,paste only for drop down values in the data validation cell other i have to restrict. Can you share your solution.

      Thanks
      Rao