![]() |
How to detect cell content modifications?
I want to run a macro once a particular cell is modified. How to
detect that? Is there any way to do that other than selectionchange? Selection change doesn't give the previous value of the modified cell I guess. |
How to detect cell content modifications?
You need two macros:
I am using cell Z100 as an example 1. first set up a value in Z100 2. enter and run the following macro: Public v As Variant Sub sistence() v = Range("Z100").Value End Sub 3. finally enter the following event macro in the worksheet code area: Private Sub Worksheet_Change(ByVal Target As Range) Set t = Target Set r = Range("Z100") If Intersect(r, t) Is Nothing Then Exit Sub MsgBox (v & Chr(10) & t.Value) v = t.Value End Sub each time Z100 is changed, both the old and new values are displayed. -- Gary''s Student - gsnu200769 " wrote: I want to run a macro once a particular cell is modified. How to detect that? Is there any way to do that other than selectionchange? Selection change doesn't give the previous value of the modified cell I guess. |
How to detect cell content modifications?
Instead of calling a separate macro, I think you can automate the entire
process like this... Public V As Variant Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("Z100")) Is Nothing Then Exit Sub ' Your code goes here... MsgBox for example purposes only MsgBox "Old Value: " & V & Chr(10) & "New Value: " & Target.Value ' Make this the last statement in this event procedure V = Target.Value End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Target, Range("Z100")) Is Nothing Then V = Target.Value End Sub Rick "Gary''s Student" wrote in message ... You need two macros: I am using cell Z100 as an example 1. first set up a value in Z100 2. enter and run the following macro: Public v As Variant Sub sistence() v = Range("Z100").Value End Sub 3. finally enter the following event macro in the worksheet code area: Private Sub Worksheet_Change(ByVal Target As Range) Set t = Target Set r = Range("Z100") If Intersect(r, t) Is Nothing Then Exit Sub MsgBox (v & Chr(10) & t.Value) v = t.Value End Sub each time Z100 is changed, both the old and new values are displayed. -- Gary''s Student - gsnu200769 " wrote: I want to run a macro once a particular cell is modified. How to detect that? Is there any way to do that other than selectionchange? Selection change doesn't give the previous value of the modified cell I guess. |
All times are GMT +1. The time now is 12:19 AM. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com