Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1
Default How Capture Cell Value Before Change Event Fires?

I am working with the Worksheet change event to perform cell level edits. How
do I get the value of a selection prior to the change event? I assume the
value is stored somewhere in order to enable the undo event to work. I also
read that using the worksheet_Change event disables the undo.

Am I required to write a Worksheet_BeforeChange event, or can I just get the
value so I know what it is?

Thanks in advance
  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,718
Default How Capture Cell Value Before Change Event Fires?

Wherever the old values is stored they are not accessible to us. So..

Private Sub Worksheet_Change(ByVal Target As Range)
Dim OldValue As Variant
With Application
.EnableEvents = False
.Undo
OldValue = Target.Cells(1).Value
.Undo
.EnableEvents = True
End With
MsgBox "Value was " & OldValue
End Sub

This mades the simplifying assumption only one cell was changed. In 'real
life' you'd need to capture the values in the entire Target range, which can
be more than one cell.

--
Jim
"MVP Wannabe" <MVP wrote in message
...
|I am working with the Worksheet change event to perform cell level edits.
How
| do I get the value of a selection prior to the change event? I assume the
| value is stored somewhere in order to enable the undo event to work. I
also
| read that using the worksheet_Change event disables the undo.
|
| Am I required to write a Worksheet_BeforeChange event, or can I just get
the
| value so I know what it is?
|
| Thanks in advance


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 2,202
Default How Capture Cell Value Before Change Event Fires?

I am working with the Worksheet change event to perform cell level edits.
How
do I get the value of a selection prior to the change event? I assume the
value is stored somewhere in order to enable the undo event to work. I
also
read that using the worksheet_Change event disables the undo.

Am I required to write a Worksheet_BeforeChange event, or can I just get
the
value so I know what it is?


There is already a kind of BeforeChange event... it is called
SelectionChange. Add this code to your worksheet's code window...

Dim LastText As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
LastText = Target.Value
End Sub

and, when in the Change event, you can reference LastText to see what the
text was when you entered the cell. Note that the Dim statement for the
LastText statement is NOT declared inside any procedures... just place it at
the top of the code window, under your Option Explicit statement if you are
using one (and you should be using one<g).

Rick

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
Change event on single cell fires many times XP Excel Programming 3 November 6th 06 10:16 PM
Application.EnableEvents = true, but no event fires Wexler Excel Programming 0 October 19th 04 06:08 PM
worksheet_change event fires multiple times timconstan[_3_] Excel Programming 0 October 6th 04 03:59 PM
worksheet_change event fires multiple times timconstan[_2_] Excel Programming 1 October 5th 04 07:44 PM
worksheet_change event fires multiple times timconstan Excel Programming 1 October 5th 04 05:55 PM


All times are GMT +1. The time now is 07:37 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"