View Single Post
  #3   Report Post  
Posted to microsoft.public.excel.programming
Mike H Mike H is offline
external usenet poster
 
Posts: 11,501
Default How to not execute Worksheet_Change while making changes to it via

Hi,

Disable events in your code, do what you want then re-enable events

Application.enableevents=false
'do things
Application.enableevents=true

Mike

"Adnan" wrote:

Hi everyone,

With the great help of Lenze (MrExcel MVP), I managed to modify his code to
suit my needs but the issue is that I only need it to work in GUI and not
while I am coping or manipulating via code (i.e.:
Workbooks("Book1.xls").Worksheets("").Cells(1,1).V alue =
workbooks("Book1.xls").worksheets("").cells(1,1).v alue. Anywayes, my
questions is as to how do I prevent or stop this code execution when I am
extracting data into this sheet from another workbook i have a code that
extract automatically)...

I managed to do this via programming in VBE (assigning the following code
behinde the sheet after the extraction from other workbook is complete) but
then this requires all users to check €˜trust Visual Basic checkbox and I do
not know who is going to be using this workbook.

I also tried something to do with, if workbook... worksheet("Data").activate
= false then do not execute the code, otherwise, do. Had no luck thus far.

Any help/tip would be much appreciated.
Adnan



Option Explicit
Public preValue As Variant

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column 2 And Target.Column < 16 Then
ActiveSheet.Cells(Target.Row, 2) = Cells(Target.Row, 2).Value & Chr(10)
& "Previous Value was " _
& preValue & Chr(10) & "Revised " & Format(Now(), "m/d/yy h:mm;@") &
Chr(10) & "By " & Environ("UserName")
End If

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Target.Count 1 Then Exit Sub
If Target = "" Then
preValue = "a blank"
Else: preValue = Target.Value
End If

End Sub