View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Bob Phillips[_6_] Bob Phillips[_6_] is offline
external usenet poster
 
Posts: 11,272
Default Accumulatar Cell

Private Sub Worksheet_Change(ByVal Target As Range)
Const WS_RANGE As String = "A1:B1"

On Error GoTo ws_exit:
Application.EnableEvents = False
If Not Intersect(Target, Me.Range(WS_RANGE)) Is Nothing Then
Range("D1").Value = Range("D1").Value + Target.Value
End If

ws_exit:
Application.EnableEvents = True
End Sub

'This is worksheet event code, which means that it needs to be
'placed in the appropriate worksheet code module, not a standard
'code module. To do this, right-click on the sheet tab, select
'the View Code option from the menu, and paste the code in.


--

HTH

RP
(remove nothere from the email address if mailing direct)


"Shatin" wrote in message
...
On a worksheet:

In cell A1 is a number.
In cell B1 is another number.
In cell C1 is the formula: = sum(A1+B1)

The values in A1 and B1 are downloaded from the web and change constantly.

What I want to do is to use cell D1 to accumulate the values of C1.

For example
A1 = 100, B1 = 200, C1 = 300, D1 = 300
A1 = 200, B1 = 300, C1 = 500, D1 = 300 + 500 = 800, etc.

Presumably, I can use to a worksheet change event to capture the changes

in
C1 to put them in D1. The problem is C1 depends on A1 and B1. Thus, when
there is a new value in A1, C1 changes. Then when there's a new value in

B1,
C1 changes again. So the value in A1 will be double counted. How can I

make
sure that the worksheet change event only fires when both A1 and B1 have

new
values?

TIA.