ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Discussion (Misc queries) (https://www.excelbanter.com/excel-discussion-misc-queries/)
-   -   Prevent deleting multiple cells at once (https://www.excelbanter.com/excel-discussion-misc-queries/161801-prevent-deleting-multiple-cells-once.html)

Horatio J. Bilge, Jr.

Prevent deleting multiple cells at once
 
How can I prevent a user from deleting more than one cell at a time? I have
code that returns the cell's original contents if a user presses delete, but
if they highlight several cells and press delete, it doesn't work (the cells'
contents are actually deleted). I added a message box to the code as below,
but it doesn't actually prevent them from deleting the cells' contents.

If Target.Cells.Count 1 Then
MsgBox("You can only edit one cell at a time.")
Exit Sub
End If

Thanks,
~ Horatio


Otto Moehrbach

Prevent deleting multiple cells at once
 
Horatio
What you have to do is to first determine if Target.Count1.
If it is, issue an Undo command like:
Application.EnableEvents=False
Application.Undo
Application.EnableEvents=True
This gets your values back. Now you can display the message box. The
complete macro would look like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count 1 Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Whatever"
End If
End Sub
"Horatio J. Bilge, Jr." wrote in
message ...
How can I prevent a user from deleting more than one cell at a time? I
have
code that returns the cell's original contents if a user presses delete,
but
if they highlight several cells and press delete, it doesn't work (the
cells'
contents are actually deleted). I added a message box to the code as
below,
but it doesn't actually prevent them from deleting the cells' contents.

If Target.Cells.Count 1 Then
MsgBox("You can only edit one cell at a time.")
Exit Sub
End If

Thanks,
~ Horatio




Horatio J. Bilge, Jr.

Prevent deleting multiple cells at once
 
Thanks. That works great.


"Otto Moehrbach" wrote:

Horatio
What you have to do is to first determine if Target.Count1.
If it is, issue an Undo command like:
Application.EnableEvents=False
Application.Undo
Application.EnableEvents=True
This gets your values back. Now you can display the message box. The
complete macro would look like:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count 1 Then
Application.EnableEvents = False
Application.Undo
Application.EnableEvents = True
MsgBox "Whatever"
End If
End Sub
"Horatio J. Bilge, Jr." wrote in
message ...
How can I prevent a user from deleting more than one cell at a time? I
have
code that returns the cell's original contents if a user presses delete,
but
if they highlight several cells and press delete, it doesn't work (the
cells'
contents are actually deleted). I added a message box to the code as
below,
but it doesn't actually prevent them from deleting the cells' contents.

If Target.Cells.Count 1 Then
MsgBox("You can only edit one cell at a time.")
Exit Sub
End If

Thanks,
~ Horatio






All times are GMT +1. The time now is 10:37 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
ExcelBanter.com