ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Code Works on Windows 2000 but not on XP (https://www.excelbanter.com/excel-programming/393831-code-works-windows-2000-but-not-xp.html)

amirstal[_2_]

Code Works on Windows 2000 but not on XP
 
HI,

Does anyone have an idea why this code works on Windows 2000 SP4 but
not on XP???

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True

If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,

Amir


Barb Reinhardt

Code Works on Windows 2000 but not on XP
 
I'm on 2003 (XP?) and it seems to work here. What's the problem?

"amirstal" wrote:

HI,

Does anyone have an idea why this code works on Windows 2000 SP4 but
not on XP???

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True

If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,

Amir



amirstal[_2_]

Code Works on Windows 2000 but not on XP
 
On Jul 20, 2:28 pm, Barb Reinhardt
wrote:
I'm on 2003 (XP?) and it seems to work here. What's the problem?

"amirstal" wrote:
HI,


Does anyone have an idea why this code works on Windows 2000 SP4 but
not on XP???


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,


Amir


The problem is that when I enter the first amount, it does not show
the second amount automatically, like it does on Windows 2000. I have
XP version 2002, SP2.

Amir


Mike H

Code Works on Windows 2000 but not on XP
 
One problem I see is that it's that prone to crashing because of lack of
error checking there's a very good chance of leaving EnableEvents as false
meaning the macro won't work at all after the first crash.

Mike

"amirstal" wrote:

On Jul 20, 2:28 pm, Barb Reinhardt
wrote:
I'm on 2003 (XP?) and it seems to work here. What's the problem?

"amirstal" wrote:
HI,


Does anyone have an idea why this code works on Windows 2000 SP4 but
not on XP???


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,


Amir


The problem is that when I enter the first amount, it does not show
the second amount automatically, like it does on Windows 2000. I have
XP version 2002, SP2.

Amir



Don Guillett

Code Works on Windows 2000 but not on XP
 
It's always helpful to define what you mean when you say "doesn't work" to
tell us what doesn't work.

I tested yours on VistaHomePremium with xl2003 with all updates and it
worked fine.
But this may be better.Notice the trap for 0 in .offset(,-4)

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I2,G10:I100")) Is Nothing Then
Select Case Target.Column
Case Is = 7
Target.Offset(, 2) = Target.Offset(, -2) * Target * -1
Case Is = 9
If Target.Offset(, -4) = 0 Then Exit Sub
Target.Offset(, -2) = Target / Target.Offset(, -4) * -1
Case Else
End Select
End If
End Sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"amirstal" wrote in message
ups.com...
HI,

Does anyone have an idea why this code works on Windows 2000 SP4 but
not on XP???

Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True

If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,

Amir



amirstal[_2_]

Code Works on Windows 2000 but not on XP
 
On Jul 20, 2:48 pm, Mike H wrote:
One problem I see is that it's that prone to crashing because of lack of
error checking there's a very good chance of leaving EnableEvents as false
meaning the macro won't work at all after the first crash.

Mike

"amirstal" wrote:
On Jul 20, 2:28 pm, Barb Reinhardt
wrote:
I'm on 2003 (XP?) and it seems to work here. What's the problem?


"amirstal" wrote:
HI,


Does anyone have an idea why this code works on Windows 2000 SP4 but
not on XP???


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,


Amir


The problem is that when I enter the first amount, it does not show
the second amount automatically, like it does on Windows 2000. I have
XP version 2002, SP2.


Amir


Yes, that what happened. It crashed and now it won't work. How can I
fix that problem?


Don Guillett

Code Works on Windows 2000 but not on XP
 
We TOP post here.

sub fixit()
Application.EnableEvents = True
end sub

--
Don Guillett
Microsoft MVP Excel
SalesAid Software

"amirstal" wrote in message
ups.com...
On Jul 20, 2:48 pm, Mike H wrote:
One problem I see is that it's that prone to crashing because of lack of
error checking there's a very good chance of leaving EnableEvents as
false
meaning the macro won't work at all after the first crash.

Mike

"amirstal" wrote:
On Jul 20, 2:28 pm, Barb Reinhardt
wrote:
I'm on 2003 (XP?) and it seems to work here. What's the problem?


"amirstal" wrote:
HI,


Does anyone have an idea why this code works on Windows 2000 SP4
but
not on XP???


Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$G$10" Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Address = "$I$2" Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


If Target.Row < 10 Then Exit Sub
Application.EnableEvents = False
If Target.Column = 7 Then _
Target.Offset(, 2) = Target.Offset(, -2) * Target * (-1)
If Target.Column = 9 Then _
Target.Offset(, -2) = Target / Target.Offset(, -4) * (-1)
Application.EnableEvents = True


End Sub


Thanks,


Amir


The problem is that when I enter the first amount, it does not show
the second amount automatically, like it does on Windows 2000. I have
XP version 2002, SP2.


Amir


Yes, that what happened. It crashed and now it won't work. How can I
fix that problem?




All times are GMT +1. The time now is 06:51 PM.

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