I have a worksheet change event in my sheet one code that calls all of my subs each time there is a change to any of the cells. Once Sub MatchedMoneyTest () gets called I think I need something like the following to happen:

Sub MatchedMoneyTest ()
‘establish a range of 30 seconds (Using the countdown in Cell C4 as a reference to note when a second has passed)
This is really important as this sub routine can't just loop each second as my machine won't check for updates in other subs which need to run every second also.

‘Every time an even cell between K10:K20 increases the increased amount is added to the corresponding last traded price (K9:K19) – This information will appear in the column AQ for changes in K10, AR for changes in K12 etc
For example, if £50 has been added to K10 since the last update and K9 is showing 4.0 then AQ171 will increase by £50. The problem is K9 will refresh much quicker than 1 second at a time and within that second K9 may flicker between two of three prices in really volatile situations so £20 may be at 4.0, £20 at 4.2 and £10 at 4.4???

‘The value time decays each second as it passes through the 30 second range so most recent figures have a weight of 30/465, a second later it’s weighting is 29/465, the second later 28/465 etc.
As if the code wasn't complicated enough as it is, I then need the figures that appear in AQ (and AR:AV for the other 5 selections) to decay over a 30 second period so my machine doesn't have to 'remember' that much.

End Sub
Please help! I can't get my head around how the time decay fits into an already defined range and how the code for all 6 selections will work together and with the other sub routines which also get called every second. I really appreciate anybody taking their time to have a look at this for me and would really appreciate any kind of feedback.

Thank you,

CPerry.

VBA Forum Matched Ladder Exp.xls