Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Tim Patton
 
Posts: n/a
Default In the worksheet_change event, how do I determine what occured?

In the worksheet_change event, I'm trying to determine if a row has been
deleted. Is there a way to determine what event occurred?
  #2   Report Post  
Otto Moehrbach
 
Posts: n/a
Default In the worksheet_change event, how do I determine what occured?

Using the Worksheet_Change event like this:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address(0, 0)
End Sub
Produces the row number of the row that was deleted. For instance, if you
delete row 5, the MsgBox will display "5:5" without the quotes. This works
whether or not the row was a blank row. Does that help? HTH Otto
"Tim Patton" wrote in message
...
In the worksheet_change event, I'm trying to determine if a row has been
deleted. Is there a way to determine what event occurred?



  #3   Report Post  
Tim Patton
 
Posts: n/a
Default In the worksheet_change event, how do I determine what occured

Well, that kind of helps. I can't tell yet if a row has been deleted or
inserted. It gets me closer, though, so I appreciate your response!

"Otto Moehrbach" wrote:

Using the Worksheet_Change event like this:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address(0, 0)
End Sub
Produces the row number of the row that was deleted. For instance, if you
delete row 5, the MsgBox will display "5:5" without the quotes. This works
whether or not the row was a blank row. Does that help? HTH Otto
"Tim Patton" wrote in message
...
In the worksheet_change event, I'm trying to determine if a row has been
deleted. Is there a way to determine what event occurred?




  #4   Report Post  
Otto Moehrbach
 
Posts: n/a
Default In the worksheet_change event, how do I determine what occured

The following macro will produce "256" if a row has been deleted.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Count
End Sub
HTH Otto
"Tim Patton" wrote in message
...
Well, that kind of helps. I can't tell yet if a row has been deleted or
inserted. It gets me closer, though, so I appreciate your response!

"Otto Moehrbach" wrote:

Using the Worksheet_Change event like this:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address(0, 0)
End Sub
Produces the row number of the row that was deleted. For instance, if
you
delete row 5, the MsgBox will display "5:5" without the quotes. This
works
whether or not the row was a blank row. Does that help? HTH Otto
"Tim Patton" wrote in message
...
In the worksheet_change event, I'm trying to determine if a row has
been
deleted. Is there a way to determine what event occurred?






  #5   Report Post  
Tim Patton
 
Posts: n/a
Default In the worksheet_change event, how do I determine what occured

It appears that the target.count is also 256 when a row gets inserted.

"Otto Moehrbach" wrote:

The following macro will produce "256" if a row has been deleted.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Count
End Sub
HTH Otto
"Tim Patton" wrote in message
...
Well, that kind of helps. I can't tell yet if a row has been deleted or
inserted. It gets me closer, though, so I appreciate your response!

"Otto Moehrbach" wrote:

Using the Worksheet_Change event like this:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address(0, 0)
End Sub
Produces the row number of the row that was deleted. For instance, if
you
delete row 5, the MsgBox will display "5:5" without the quotes. This
works
whether or not the row was a blank row. Does that help? HTH Otto
"Tim Patton" wrote in message
...
In the worksheet_change event, I'm trying to determine if a row has
been
deleted. Is there a way to determine what event occurred?








  #6   Report Post  
Otto Moehrbach
 
Posts: n/a
Default In the worksheet_change event, how do I determine what occured

Tim
Yes, it is.
I take it that you want to know when a row is inserted and when a row is
deleted. Not knowing what your data looks like, it's not easy to nail it
down. But one idea that might work for you is to count the number of
occupied cells in the row that was changed. The Target row is the new blank
row if a row is added, or the row immediately below the row that was
deleted.
If you know that the row deleted had some data above and below it, then the
count would be greater that 1. This would tell you that a row was deleted.
Whereas, the count if the row was added will always be zero (0). The only
problem you would have is if the row deleted had an empty row immediately
below it. The count then would also be zero (0). Perhaps you can come up
with some way to check if the last row is gone
The count of occupied cells is:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Application.CountA(Target)
End Sub

Another idea is for the code to first find out the number of occupied
rows after the user's action, then invoke the Undo feature to Undo what the
user did. Then the code can find out the number of occupied rows after the
Undo. This gives you the number of occupied rows before and after the
user's action. HTH Otto

"Tim Patton" wrote in message
...
It appears that the target.count is also 256 when a row gets inserted.

"Otto Moehrbach" wrote:

The following macro will produce "256" if a row has been deleted.
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Count
End Sub
HTH Otto
"Tim Patton" wrote in message
...
Well, that kind of helps. I can't tell yet if a row has been deleted
or
inserted. It gets me closer, though, so I appreciate your response!

"Otto Moehrbach" wrote:

Using the Worksheet_Change event like this:
Private Sub Worksheet_Change(ByVal Target As Range)
MsgBox Target.Address(0, 0)
End Sub
Produces the row number of the row that was deleted. For instance, if
you
delete row 5, the MsgBox will display "5:5" without the quotes. This
works
whether or not the row was a blank row. Does that help? HTH Otto
"Tim Patton" wrote in message
...
In the worksheet_change event, I'm trying to determine if a row has
been
deleted. Is there a way to determine what event occurred?








Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
in vba what command is used to determine if a particular cell on a particular sheet changed? some kind of event? how to get the old and new value of the cell? Daniel Excel Worksheet Functions 1 June 23rd 05 07:53 PM
Same event, multiple sheets? Robert Smith Excel Discussion (Misc queries) 1 December 24th 04 11:36 AM
Excel Automation SelectionChange event cpotts Excel Discussion (Misc queries) 1 December 20th 04 05:15 PM
Worksheet Row Change event crazybass2 Excel Discussion (Misc queries) 4 December 8th 04 05:29 PM
formula to determine the first column containing any data sd Excel Worksheet Functions 5 November 9th 04 08:06 PM


All times are GMT +1. The time now is 12:36 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright ©2004-2025 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"