Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default 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

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3,355
Default 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


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default 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

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 11,501
Default 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


  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,124
Default 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




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 18
Default 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?

  #7   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 10,124
Default 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?


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
VB Code works in 2000, but not 2003 [email protected] Excel Programming 2 June 21st 06 09:13 AM
Excel 2000 Code works except in debug mode Bob Smedley Excel Programming 0 January 24th 06 01:21 AM
Viewing Access Code in Windows 2000 Larry Bird Excel Discussion (Misc queries) 1 November 8th 05 06:23 PM
Code-signing certificate problems in Excel 2000 with Windows 2000 Aaron Queenan Excel Programming 0 May 6th 04 11:35 AM
VBA Code works in 2000 not 97 Michael Beckinsale Excel Programming 1 January 20th 04 05:38 PM


All times are GMT +1. The time now is 06:52 AM.

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"