ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Worksheet_Change and Application.undo (https://www.excelbanter.com/excel-programming/333615-worksheet_change-application-undo.html)

Mangesh Yadav[_4_]

Worksheet_Change and Application.undo
 
I have the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$83" And Target.Value = 1 And Target.Value
<= 4 Then
' do something
Else
Application.Undo
End If
End Sub

To start with, lets say F83 has 3. Now my problem is, if I enter say 5 in
F83, then the above code is triggered, and through the Else, Application
Undo is triggered, and 3 is entered again in F83. But this again triggers
the changes event.

My question: Can this second trigger be avoided somehow?

I don't want to use the Data Validation, as the above thing is just a
small part of what I am trying to do.

--
- Mangesh
------------------------------------------
Office XP & Windows XP



Mangesh Yadav[_4_]

Worksheet_Change and Application.undo
 
putting

Application.EnableEvents = False

before application.undo seems to be working for me.


Mangesh



"Mangesh Yadav" wrote in message
...
I have the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$83" And Target.Value = 1 And Target.Value
<= 4 Then
' do something
Else
Application.Undo
End If
End Sub

To start with, lets say F83 has 3. Now my problem is, if I enter say 5 in
F83, then the above code is triggered, and through the Else, Application
Undo is triggered, and 3 is entered again in F83. But this again triggers
the changes event.

My question: Can this second trigger be avoided somehow?

I don't want to use the Data Validation, as the above thing is just a
small part of what I am trying to do.

--
- Mangesh
------------------------------------------
Office XP & Windows XP





Bob Phillips[_7_]

Worksheet_Change and Application.undo
 
Mangesh,

A couple of points

make sure you reset
and add error trappin g to rest on error

Like so

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo ws_exit:
Application.EnableEvents = False
With Target
If .Address = "$F$83" And .Value = 1 And .Value <= 4 Then
'do your stuff
End If
End With

ws_exit:
Application.EnableEvents = True
End Sub

--
HTH

Bob Phillips

"Mangesh Yadav" wrote in message
...
putting

Application.EnableEvents = False

before application.undo seems to be working for me.


Mangesh



"Mangesh Yadav" wrote in message
...
I have the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$83" And Target.Value = 1 And

Target.Value
<= 4 Then
' do something
Else
Application.Undo
End If
End Sub

To start with, lets say F83 has 3. Now my problem is, if I enter say 5

in
F83, then the above code is triggered, and through the Else, Application
Undo is triggered, and 3 is entered again in F83. But this again

triggers
the changes event.

My question: Can this second trigger be avoided somehow?

I don't want to use the Data Validation, as the above thing is just a
small part of what I am trying to do.

--
- Mangesh
------------------------------------------
Office XP & Windows XP







Mangesh Yadav[_4_]

Worksheet_Change and Application.undo
 
Hi Bob,

Thanks. Have taken care of both the points. I was presuming that I already
had the EnableEvents 'off', and still it was not working. Anyway, thanks.

Mangesh




"Bob Phillips" wrote in message
...
Mangesh,

A couple of points

make sure you reset
and add error trappin g to rest on error

Like so

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo ws_exit:
Application.EnableEvents = False
With Target
If .Address = "$F$83" And .Value = 1 And .Value <= 4 Then
'do your stuff
End If
End With

ws_exit:
Application.EnableEvents = True
End Sub

--
HTH

Bob Phillips

"Mangesh Yadav" wrote in message
...
putting

Application.EnableEvents = False

before application.undo seems to be working for me.


Mangesh



"Mangesh Yadav" wrote in message
...
I have the following code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$F$83" And Target.Value = 1 And

Target.Value
<= 4 Then
' do something
Else
Application.Undo
End If
End Sub

To start with, lets say F83 has 3. Now my problem is, if I enter say 5

in
F83, then the above code is triggered, and through the Else,

Application
Undo is triggered, and 3 is entered again in F83. But this again

triggers
the changes event.

My question: Can this second trigger be avoided somehow?

I don't want to use the Data Validation, as the above thing is just

a
small part of what I am trying to do.

--
- Mangesh
------------------------------------------
Office XP & Windows XP










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

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com