Tom wrote:
Some cells won't manually recalculate. Have large/complex file set to manual calc. After hitting F9, some cells (with very simple formulas) don't recalculate. If I edit the cell and hit return, then that individual cell calcs. How to fix?
What makes you think the cell should recalculate when F9 is pressed? More to the point, what have you (not) told us to make
us think it should be?
Note that when you press F9, Excel will only "[r]ecalculate formulas that have
changed since the last calculation, and formulas dependent on them".
Without seeing the formula, we can only make wild-a.s.s guesses. My first WAG....
Perhaps your formula includes a reference to a user-defined [removed_js] that you intend to be called each time Excel decides to recalcuate. If that is the case, you need to do one of several things.
1. Make the UDF volatile by including Application.Volatile in the main code path, usually as the first executable statement.
Personally, I do not like this solution. It causes all formulas (and their dependents) calling the UDF to be recalculated every time any cell in any worksheet in the workbook is edited.
2. Pass a cell or range reference to the UDF. Thus, formulas (and their dependents) that call the UDF are recalculated whenever any cell in the passed reference is recalculated.
In order for this to work, the UDF must actually access the passed references. Also, I believe (not sure) that the UDF must access the
value of the passed references. It is not sufficient to access other attributes of the passed references, e.g. their color.
3. Create a "control" (button) associated with a macro that executes Range("a1").Dirty, then Range("a1").Calculate, for example. (Suppose A1 is the cell you want to force to be recalculated.)
This gives you the greatest control over when the desired cell or cells are recalculated.
To create a "control", click on Developer, then Insert (Controls), select the desired control and edit the macro. If you do not see Developer tab above the ribbon, click on File, Options, Customize Ribbon, and follow the necessary steps.