Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Change event occurs
Excel & Windows XP
The following simple Change event macro fires if the active cell is blank and I hit the Delete key. Since no change to the contents of the cell occurred, why does it fire? Thanks for your help. Otto Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "It changed." End Sub |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
Change event occurs
Otto Moehrbach wrote: Excel & Windows XP The following simple Change event macro fires if the active cell is blank and I hit the Delete key. Since no change to the contents of the cell occurred, why does it fire? Thanks for your help. Otto Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "It changed." End Sub Presumably because Change is fired on any assignment - even if the assignment was not a genuine change. If you have a cell containing say 5 and you enter 5 in that cell, it would also fire. There would be a definite overhead in comparing the old value and the new value of a range before firing the event. In the off-hand chance you want the event to fire only in the event of an actual change you could mimic this in code by storing the old data (maybe by having the selection change event write it to a public variable) and then compare it at the start of the change event, terminating the call if the values are the same. Hope that helps -John Coleman |
#3
Posted to microsoft.public.excel.programming
|
|||
|
|||
Change event occurs
Thanks John. Otto
"John Coleman" wrote in message oups.com... Otto Moehrbach wrote: Excel & Windows XP The following simple Change event macro fires if the active cell is blank and I hit the Delete key. Since no change to the contents of the cell occurred, why does it fire? Thanks for your help. Otto Private Sub Worksheet_Change(ByVal Target As Range) MsgBox "It changed." End Sub Presumably because Change is fired on any assignment - even if the assignment was not a genuine change. If you have a cell containing say 5 and you enter 5 in that cell, it would also fire. There would be a definite overhead in comparing the old value and the new value of a range before firing the event. In the off-hand chance you want the event to fire only in the event of an actual change you could mimic this in code by storing the old data (maybe by having the selection change event write it to a public variable) and then compare it at the start of the change event, terminating the call if the values are the same. Hope that helps -John Coleman |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Need to determine where a change in table occurs | Excel Discussion (Misc queries) | |||
execute code in one worksheet when change occurs in another | Excel Programming | |||
conditional cell shading when a change occurs | Excel Discussion (Misc queries) | |||
Change event and calculate event | Excel Programming | |||
event which occurs when a TextBox receives focus | Excel Programming |