Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default RecordHigh(Cell)

I have a spreadsheet that lives forever, constantly being saved and
resaved either with the same name or a new name. That spreadsheet
contains several cells whose values change regularly, during the
dynamic life of the spreadsheet. Consider for instance cell C5, which
has a formula that currently evaluates to 14. In another cell, call it
D5, I want to record the greatest value that C5 has ever been; for
instance, if the value in C5 changes to 17, D5 should also contain 17,
but if the value in C5 subsequently changes to 12, the value in D5
should remain 17. The "record high" must be preserved across saves of
the spreadsheet; if the spreadsheet is saved and closed, then reopened,
the value in D5 should still be 17. Further, the record high must be
preserved when the spreadsheet is restructured; for instance, if a row
is insert above row 5, so that C5 moves to C6 and D5 moves to D6, the
value in D6 must be the record high over the life of the spreadsheet
that has ever appeared in C6.

The obvious way to make this work is to write a function
RecordHigh(Cell) that saves the record high in some hidden worksheet
that is saved with the spreadsheet. Then, the formula in cell D5 would
be =RecordHigh(C5). But I haven't been able to make this work. Does
anybody have any ideas how to do this?

Phil

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 27,285
Default RecordHigh(Cell)

you would need to use intentional circular references.


go to Stephen Bullen's site

http://www.oaltd.co.uk/Excel/Default.htm

and look at "LastChng.zip"

This isn't exactly what you want, but the technique is the same.

You would name your cells (insert=Name=Define) and in the formula refer to
the name which will be adjusted if the user inserts or deletes rows.

--
Regards,
Tom Ogilvy


wrote in message
ups.com...
I have a spreadsheet that lives forever, constantly being saved and
resaved either with the same name or a new name. That spreadsheet
contains several cells whose values change regularly, during the
dynamic life of the spreadsheet. Consider for instance cell C5, which
has a formula that currently evaluates to 14. In another cell, call it
D5, I want to record the greatest value that C5 has ever been; for
instance, if the value in C5 changes to 17, D5 should also contain 17,
but if the value in C5 subsequently changes to 12, the value in D5
should remain 17. The "record high" must be preserved across saves of
the spreadsheet; if the spreadsheet is saved and closed, then reopened,
the value in D5 should still be 17. Further, the record high must be
preserved when the spreadsheet is restructured; for instance, if a row
is insert above row 5, so that C5 moves to C6 and D5 moves to D6, the
value in D6 must be the record high over the life of the spreadsheet
that has ever appeared in C6.

The obvious way to make this work is to write a function
RecordHigh(Cell) that saves the record high in some hidden worksheet
that is saved with the spreadsheet. Then, the formula in cell D5 would
be =RecordHigh(C5). But I haven't been able to make this work. Does
anybody have any ideas how to do this?

Phil



  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5
Default RecordHigh(Cell)

Got it. Thanks. I was trying so hard not to use a circular reference
that I didn't realize it is exactly the right solution to this problem.

  #4   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 5,441
Default RecordHigh(Cell)

Name the cell "RHigh" and then use the calculate event, below. Copy the code, right-click the sheet
tab, select "View Code", and paste the code in the window that appears.

HTH,
Bernie
MS Excel MVP

Private Sub Worksheet_Calculate()
If Range("RHigh").Value Range("RHigh")(1, 2).Value Then
Application.EnableEvents = False
Range("RHigh")(1, 2).Value = Range("RHigh").Value
Application.EnableEvents = True
End If
End Sub

wrote in message ups.com...
I have a spreadsheet that lives forever, constantly being saved and
resaved either with the same name or a new name. That spreadsheet
contains several cells whose values change regularly, during the
dynamic life of the spreadsheet. Consider for instance cell C5, which
has a formula that currently evaluates to 14. In another cell, call it
D5, I want to record the greatest value that C5 has ever been; for
instance, if the value in C5 changes to 17, D5 should also contain 17,
but if the value in C5 subsequently changes to 12, the value in D5
should remain 17. The "record high" must be preserved across saves of
the spreadsheet; if the spreadsheet is saved and closed, then reopened,
the value in D5 should still be 17. Further, the record high must be
preserved when the spreadsheet is restructured; for instance, if a row
is insert above row 5, so that C5 moves to C6 and D5 moves to D6, the
value in D6 must be the record high over the life of the spreadsheet
that has ever appeared in C6.

The obvious way to make this work is to write a function
RecordHigh(Cell) that saves the record high in some hidden worksheet
that is saved with the spreadsheet. Then, the formula in cell D5 would
be =RecordHigh(C5). But I haven't been able to make this work. Does
anybody have any ideas how to do this?

Phil



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
Code to copy the formulae of one cell to all the cell in the rangewith the specific cell and columnnumber changing Options Yuvraj Excel Discussion (Misc queries) 0 June 29th 09 11:20 AM
Code to copy the formulae of one cell to all the cell in the rangewith the specific cell and columnnumber changing Yuvraj Excel Discussion (Misc queries) 0 June 26th 09 06:01 PM
Populate a cell if values in cell 1 and cell 2 match cell 3 and 4 [email protected] Excel Worksheet Functions 1 August 22nd 08 02:04 AM
How to create/run "cell A equals Cell B put Cell C info in Cell D abmb161 Excel Discussion (Misc queries) 5 January 26th 06 06:36 PM
Question: Cell formula or macro to write result of one cell to another cell Frederik Romanov Excel Programming 1 July 8th 03 03:03 PM


All times are GMT +1. The time now is 04:05 PM.

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"