Hi I have placed the following code in my spreadsheet but it's not working!

the code after option explicit (now at the bottom) works, (thanks to Andy on here!) but all the disabling the right click and cut/copy/paste etc doesn't.

What have I done wrong please????

Private Sub Workbook_Activate()

Application.CommandBars("Edit").Controls(3).Enabled = False
Application.CommandBars("Edit").Controls(4).Enabled = False
Application.CommandBars("Edit").Controls(5).Enabled = False
Application.CommandBars("Edit").Controls(6).Enabled = False

Application.CommandBars("Standard").Controls(7).Enabled = False
Application.CommandBars("Standard").Controls(8).Enabled = False
Application.CommandBars("Standard").Controls(9).Enabled = False
Application.CommandBars("Standard").Controls(10).Enabled = False

Application.OnKey "^c", ""
Application.OnKey "^v", ""
Application.OnKey "^x", ""
Application.OnKey "^{INSERT}", ""
Application.OnKey "+{INSERT}", ""
End Sub

Private Sub Workbook_Deactivate()

Application.CommandBars("Edit").Controls(3).Enabled = True
Application.CommandBars("Edit").Controls(4).Enabled = True
Application.CommandBars("Edit").Controls(5).Enabled = True
Application.CommandBars("Edit").Controls(6).Enabled = True

Application.CommandBars("Standard").Controls(7).Enabled = True
Application.CommandBars("Standard").Controls(8).Enabled = True
Application.CommandBars("Standard").Controls(9).Enabled = True
Application.CommandBars("Standard").Controls(10).Enabled = True

Application.OnKey "^c"
Application.OnKey "^v"
Application.OnKey "^x"
Application.OnKey "^{INSERT}"
Application.OnKey "+{INSERT}"
End Sub

Option Explicit


Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("H20,H21,H22,H23,H24,H25,H26")) Is Nothing Then
If Target.Value < -2 Or Target.Value > 2 Then
Target.Offset(21, 0).Activate
End If
End If
End Sub