View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips[_7_] Bob Phillips[_7_] is offline
external usenet poster
 
Posts: 1,120
Default How to trap delete row event and hide column event?

Here is a technique that Rob Bovey posted some time ago. It is a kludge as
Rob says, but it may work for you

There's no direct way to do this. I created a workaround for one project
where I needed to do this, but it was very clunky. As a rule, I always hide
the first row and column of worksheets in my projects. This gives me scratch
space to work in and is required for this solution to work (at least the
hidden first column is required in this case).

In my hidden first column I placed the number 1 in every cell of the
area the user might interact with (let's say A1:A100). Then in cell A101 I
placed the formula

=COUNTBLANK(A1:A100)

and gave it the range name "CheckInsert". In cell A102 I placed the *array
formula* (entered with Ctrl+Shift+Enter)

=MATCH(TRUE,ISBLANK(A1:A100),0*)

and gave it the range name "FindInsert".

Each time the worksheet_calculate event fired, I would check the
CheckInsert cell. If it contained any number other than zero, I would know
the user had inserted a row, and how many they had inserted. The FindInsert
range would then contain the number of the row where the insert began.

I would then turn off calculation, take the action I needed to take, add
1s into the just-inserted rows, and turn calculation back on. You can extend
this general method to include finding deletions by using sequentially
numbered cells in the first column, rather than 1s.

--
Rob Bovey, MCSE
The Payne Consulting Group
http://www.payneconsulting.com



--
HTH

Bob Phillips

"Alan" wrote in message
...

"Vasant Nanavati" <vasantn *AT* aol *DOT* com wrote in message
...

Sadly, you can't trap the deletion or the hiding/unhiding of a row
or column.


Hi Vasant,

Thought as much.

I am thinking perhaps I could use something like an 'ontime' macro
that generates an array of column widths every 5 seconds (say) and
compares to the previous array. A change would be then act as my
event catcher.

Do you think that has legs? If so, I will give it a go.

Thanks for your input.

Alan.


PS: What about the deleting event? Any thoughts on that one?