Disable cut (CTRL x) in Excel

tyannotti

New member
Joined
Apr 15, 2014
Messages
7
Reaction score
0
Points
1
Is there a simple macro - similar to your "CutCopyPasteDisabled" macro (see below) - for disabling the CUT command only?

I only need to disable cut (CTRL x) because moving cells messes up my formulas when I do this by accident. Everything else is okay.

Here's the code written by Ken Puls:



Code:
Sub ToggleCutCopyAndPaste(Allow As Boolean)
'Activate/deactivate cut, copy, paste and pastespecial menu items
Call EnableMenuItem(21, Allow) ' cut
Call EnableMenuItem(19, Allow) ' copy
Call EnableMenuItem(22, Allow) ' paste
Call EnableMenuItem(755, Allow) ' pastespecial

'Activate/deactivate drag and drop ability
Application.CellDragAndDrop = Allow
'Activate/deactivate cut, copy, paste and pastespecial shortcut keys
With Application
Select Case Allow
Case Is = False
.OnKey "^c", "CutCopyPasteDisabled"
.OnKey "^v", "CutCopyPasteDisabled"
.OnKey "^x", "CutCopyPasteDisabled"
.OnKey "+{DEL}", "CutCopyPasteDisabled"
.OnKey "^{INSERT}", "CutCopyPasteDisabled"
Case Is = True
.OnKey "^c"
.OnKey "^v"
.OnKey "^x"
.OnKey "+{DEL}"
.OnKey "^{INSERT}"
End Select
End With
End Sub
Sub EnableMenuItem(ctlId As Integer, Enabled As Boolean)
'Activate/Deactivate specific menu item
Dim cBar As CommandBar
Dim cBarCtrl As CommandBarControl
For Each cBar In Application.CommandBars
If cBar.Name <> "Clipboard" Then
Set cBarCtrl = cBar.FindControl(ID:=ctlId, recursive:=True)
If Not cBarCtrl Is Nothing Then cBarCtrl.Enabled = Enabled
End If
Next
End Sub

Sub CutCopyPasteDisabled()
'Inform user that the functions have been disabled
MsgBox "Sorry! Cutting, copying and pasting have been disabled in this workbook!"
End Sub
 
At its simplest, just disable some lines, and perhaps change the name of the sub:
Code:
Sub ToggleCut(Allow As Boolean)
'Activate/deactivate cut, copy, paste and pastespecial menu items
Call EnableMenuItem(21, Allow)  ' cut
'Call EnableMenuItem(19, Allow)  ' copy
'Call EnableMenuItem(22, Allow)  ' paste
'Call EnableMenuItem(755, Allow)  ' pastespecial

'Activate/deactivate drag and drop ability
Application.CellDragAndDrop = Allow
'Activate/deactivate cut, copy, paste and pastespecial shortcut keys
With Application
  Select Case Allow
    Case Is = False
'      .OnKey "^c", "CutCopyPasteDisabled"
'      .OnKey "^v", "CutCopyPasteDisabled"
      .OnKey "^x", "CutCopyPasteDisabled"
      .OnKey "+{DEL}", "CutCopyPasteDisabled"
'      .OnKey "^{INSERT}", "CutCopyPasteDisabled"
    Case Is = True
'      .OnKey "^c"
'      .OnKey "^v"
      .OnKey "^x"
      .OnKey "+{DEL}"
'      .OnKey "^{INSERT}"
  End Select
End With
End Sub
Completely untested.
 
Back
Top