Home |
Search |
Today's Posts |
|
#1
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
The problem is with the Case 61, 62.
The values in col 61 and 62 are results of stock prices downloaded from some external source of Excel. So I think that is the reason the Cells(Target.Row, 46) = Cells(Target.Row, 49) does not work. I can make manual changes on the sheet, where I over write the formula, and it works okay. I tried using Worksheet_Calculate() but could not make that work either. I was able to make a googled example work where you declare a range in a standard module, the calculate macro in the thisworkbook module and another macro in the sheet module. Trying to adapt that system to my Case 61, 62 is beyond me. Am I on the right track? Thanks. Howard Option Explicit Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("AW:AW,BI48:BJ65")) Is Nothing _ Or Target.count 1 Then Exit Sub Dim rngAW As Range Dim LRow As Long Dim c As Range LRow = Cells(Rows.count, 49).End(xlUp).Row Set rngAW = Range("AW6:AW" & LRow) Select Case Target.Column Case 49 For Each c In rngAW If c.Offset(, -3) = "" Then If c 0 Then c.Offset(, -3) = c End If End If Next Case 61, 62 If Cells(Target.Row, 61) = 0 Or Cells(Target.Row, 62) = 0 Then Exit Sub Cells(Target.Row, 46) = Cells(Target.Row, 49) End Select End Sub |
#2
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Howard,
Am Sat, 18 Jan 2014 01:22:09 -0800 (PST) schrieb L. Howard: The problem is with the Case 61, 62. The values in col 61 and 62 are results of stock prices downloaded from some external source of Excel. try: Private Sub Worksheet_Calculate() Dim LRow As Long Dim rngC As Range LRow = Cells(Rows.Count, 61).End(xlUp).Row For Each rngC In Range("BI1:BI" & LRow) If rngC.Value * rngC.Offset(, 1).Value < 0 Then Cells(rngC.Row, 46) = Cells(rngC.Row, 49) End If Next End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("AW:AW")) Is Nothing _ Or Target.Count 1 Then Exit Sub Dim rngAW As Range Dim LRow As Long Dim c As Range LRow = Cells(Rows.Count, 49).End(xlUp).Row Set rngAW = Range("AW6:AW" & LRow) For Each c In rngAW If c.Offset(, -3) = "" Then If c 0 Then c.Offset(, -3) = c End If End If Next End Sub Regards Claus B. -- Win XP PRof SP2 / Vista Ultimate SP2 Office 2003 SP2 /2007 Ultimate SP2 |
#3
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Saturday, January 18, 2014 1:37:46 AM UTC-8, Claus Busch wrote:
Hi Howard, Am Sat, 18 Jan 2014 01:22:09 -0800 (PST) schrieb L. Howard: The problem is with the Case 61, 62. The values in col 61 and 62 are results of stock prices downloaded from some external source of Excel. try: Private Sub Worksheet_Calculate() Dim LRow As Long Dim rngC As Range LRow = Cells(Rows.Count, 61).End(xlUp).Row For Each rngC In Range("BI1:BI" & LRow) If rngC.Value * rngC.Offset(, 1).Value < 0 Then Cells(rngC.Row, 46) = Cells(rngC.Row, 49) End If Next End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("AW:AW")) Is Nothing _ Or Target.Count 1 Then Exit Sub Dim rngAW As Range Dim LRow As Long Dim c As Range LRow = Cells(Rows.Count, 49).End(xlUp).Row Set rngAW = Range("AW6:AW" & LRow) For Each c In rngAW If c.Offset(, -3) = "" Then If c 0 Then c.Offset(, -3) = c End If End If Next End Sub Regards Claus B. Thanks Claus. I am assuming it will take a real life stock price up date to properly test the code. If I do any manual entries it makes the proper copies to column 46 from column 49 but then goes into a continuous loop. Probably won't know until Monday. (Markets closed) I trust the code much more than the incredibly complex worksheet I'm using in on. Howard |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Hi Howard,
Am Sat, 18 Jan 2014 03:48:48 -0800 (PST) schrieb L. Howard: If I do any manual entries it makes the proper copies to column 46 from column 49 but then goes into a continuous loop. set into the Worksheet_Change event Application.EnableEvents = False and at the end to TRUE Regards Claus B. -- Win XP PRof SP2 / Vista Ultimate SP2 Office 2003 SP2 /2007 Ultimate SP2 |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
On Saturday, January 18, 2014 4:03:28 AM UTC-8, Claus Busch wrote:
Hi Howard, Am Sat, 18 Jan 2014 03:48:48 -0800 (PST) schrieb L. Howard: If I do any manual entries it makes the proper copies to column 46 from column 49 but then goes into a continuous loop. set into the Worksheet_Change event Application.EnableEvents = False and at the end to TRUE Regards Claus B. -- Win XP PRof SP2 / Vista Ultimate SP2 Office 2003 SP2 /2007 Ultimate SP2 Did as you say, but the loop continues. However, the code sure does work as far as I can see. Howard |
#6
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]() Did as you say, but the loop continues. However, the code sure does work as far as I can see. Howard Forgot to say, just learned there is a button that brings some other values into play that essentially makes the Calculate code fire. I'll look for it and maybe do the enable events False/True on that code also. Howard |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
No response to change_event | Excel Programming | |||
Start a macro from a change in a cell value made by a formula? | Excel Programming | |||
Save and print if change made | Excel Programming | |||
Combobox Change_Event | Excel Programming | |||
Change_Event | Excel Programming |