Home |
Search |
Today's Posts |
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
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
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
VB Code works in 2000, but not 2003 | Excel Programming | |||
Excel 2000 Code works except in debug mode | Excel Programming | |||
Viewing Access Code in Windows 2000 | Excel Discussion (Misc queries) | |||
Code-signing certificate problems in Excel 2000 with Windows 2000 | Excel Programming | |||
VBA Code works in 2000 not 97 | Excel Programming |