Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 30
Default Cause of SheetChange Event

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,939
Default Cause of SheetChange Event

Just check the count of the target.

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count 1 then exit sub
msgbox "Do Some Stuff"
End Sub

In the above axample the message box will only come up if only one cell was
changed.
--
HTH...

Jim Thomlinson


"Matthew Wieder" wrote:

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?

  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 30
Default Cause of SheetChange Event

Your suggestion would differentiate between whether a single cell was changed
vs a group. I need my event handler to continue work even on a group of
cells if data was changed (for example via a paste operation).

"Jim Thomlinson" wrote:

Just check the count of the target.

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count 1 then exit sub
msgbox "Do Some Stuff"
End Sub

In the above axample the message box will only come up if only one cell was
changed.
--
HTH...

Jim Thomlinson


"Matthew Wieder" wrote:

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 6,953
Default Cause of SheetChange Event

I think Jim was saying there is no built in support for what you want to do -
you are left with cleverness as the only option.

--
Regards,
Tom Ogilvy


"Matthew Wieder" wrote:

Your suggestion would differentiate between whether a single cell was changed
vs a group. I need my event handler to continue work even on a group of
cells if data was changed (for example via a paste operation).

"Jim Thomlinson" wrote:

Just check the count of the target.

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count 1 then exit sub
msgbox "Do Some Stuff"
End Sub

In the above axample the message box will only come up if only one cell was
changed.
--
HTH...

Jim Thomlinson


"Matthew Wieder" wrote:

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?

  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 30
Default Cause of SheetChange Event

Certainly then, this issue has come up and there are some solutions - since
testing if the target is more then 1 cell doesn't work in my case, perhaps
some could share their cleverness?

"Tom Ogilvy" wrote:

I think Jim was saying there is no built in support for what you want to do -
you are left with cleverness as the only option.

--
Regards,
Tom Ogilvy


"Matthew Wieder" wrote:

Your suggestion would differentiate between whether a single cell was changed
vs a group. I need my event handler to continue work even on a group of
cells if data was changed (for example via a paste operation).

"Jim Thomlinson" wrote:

Just check the count of the target.

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count 1 then exit sub
msgbox "Do Some Stuff"
End Sub

In the above axample the message box will only come up if only one cell was
changed.
--
HTH...

Jim Thomlinson


"Matthew Wieder" wrote:

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?



  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,986
Default Cause of SheetChange Event

You would need to define the parameters which you want your changes to
trigger a reaction and then writhe a conditional If...Then...Else...End If
statement or a Select Case statement that either includes or excludes
conditions so that the ChangeEvent only triggers when you want it to. That's
pretty clever.

"Matthew Wieder" wrote:

Certainly then, this issue has come up and there are some solutions - since
testing if the target is more then 1 cell doesn't work in my case, perhaps
some could share their cleverness?

"Tom Ogilvy" wrote:

I think Jim was saying there is no built in support for what you want to do -
you are left with cleverness as the only option.

--
Regards,
Tom Ogilvy


"Matthew Wieder" wrote:

Your suggestion would differentiate between whether a single cell was changed
vs a group. I need my event handler to continue work even on a group of
cells if data was changed (for example via a paste operation).

"Jim Thomlinson" wrote:

Just check the count of the target.

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count 1 then exit sub
msgbox "Do Some Stuff"
End Sub

In the above axample the message box will only come up if only one cell was
changed.
--
HTH...

Jim Thomlinson


"Matthew Wieder" wrote:

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 30
Default Cause of SheetChange Event

Perhaps your solution is to clever for me - I don't understand how I would
determine wether the SheetChange was called due to column deletion vs being
called due to data changing. That is the issue this thread is dealing with.
Can you explain how you solve this issue?

"JLGWhiz" wrote:

You would need to define the parameters which you want your changes to
trigger a reaction and then writhe a conditional If...Then...Else...End If
statement or a Select Case statement that either includes or excludes
conditions so that the ChangeEvent only triggers when you want it to. That's
pretty clever.

"Matthew Wieder" wrote:

Certainly then, this issue has come up and there are some solutions - since
testing if the target is more then 1 cell doesn't work in my case, perhaps
some could share their cleverness?

"Tom Ogilvy" wrote:

I think Jim was saying there is no built in support for what you want to do -
you are left with cleverness as the only option.

--
Regards,
Tom Ogilvy


"Matthew Wieder" wrote:

Your suggestion would differentiate between whether a single cell was changed
vs a group. I need my event handler to continue work even on a group of
cells if data was changed (for example via a paste operation).

"Jim Thomlinson" wrote:

Just check the count of the target.

Private Sub Worksheet_Change(ByVal Target As Range)
if target.count 1 then exit sub
msgbox "Do Some Stuff"
End Sub

In the above axample the message box will only come up if only one cell was
changed.
--
HTH...

Jim Thomlinson


"Matthew Wieder" wrote:

We've got an event handler on the SheetChange event that needs to do some
work if the user entered or changed values in teh sheet. However, we have
found that the SheetChange event fires far more often then in this case (such
as when the user deletes a column) and we need a way to know whether we
should contiune on with our handler because the user entered data, or we
should exit the function because something else triggered the event. How
can we do this? Is there some other event that gets fired on column deletion
that we could set a flag in? Is there a way within the sheetchange event to
know wahat kind of change triggered the call?

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
SheetChange event restore old value Anton Sommer Excel Programming 1 August 8th 05 10:36 PM
How to know what caused SheetChange event.. Srini Excel Programming 0 April 26th 05 11:22 PM
how to handle 'sheetchange' event on 'add-in' Takoyaki Excel Programming 2 December 19th 04 04:50 AM
SheetChange Event Tom Ogilvy Excel Programming 0 November 23rd 04 07:10 PM
SheetChange Event crispbd[_34_] Excel Programming 0 November 23rd 04 06:43 PM


All times are GMT +1. The time now is 07:54 PM.

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"