Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default controlling excel recalculation in VBA?

I have a huge excel model that takes 1-2 minutes to recalculate each
time I change data.

I like the concept of automatic recalculation, in that it stops
recalculating while you type and waits until idle to kick off the
recalculation.

However, excel has an annoyance that it forces an uninterruptable
recalculation each time I paste data (in auto-recalc mode).

Is there any way to set up excel so it doesn't do an uninterruptable
recalc upon paste, but still recalcs on idle?

Assuming the answer to the above is no, is there a way to
programatically start and suspend recalculation so that I can write
this manually?

I'm thinking of writing VBA code along the following lines:
1) change calculation to manual
2) set a keystroke event that starts calculation on a delay timer (eg
10 no-key seconds)
3) also (this seems the hardest) set a keystroke event that stops an
ongoing calculation upon any key press

-MVL

  #2   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 180
Default controlling excel recalculation in VBA?

I don't understand clearly why you want to write a macro for tis.

Simply set the calc mode to manual and hit F9 whenever you to calculate,
which is built-in option.

--
Pranav Vaidya
VBA Developer
PN, MH-India
If you think my answer is useful, please rate this post as an ANSWER!!


" wrote:

I have a huge excel model that takes 1-2 minutes to recalculate each
time I change data.

I like the concept of automatic recalculation, in that it stops
recalculating while you type and waits until idle to kick off the
recalculation.

However, excel has an annoyance that it forces an uninterruptable
recalculation each time I paste data (in auto-recalc mode).

Is there any way to set up excel so it doesn't do an uninterruptable
recalc upon paste, but still recalcs on idle?

Assuming the answer to the above is no, is there a way to
programatically start and suspend recalculation so that I can write
this manually?

I'm thinking of writing VBA code along the following lines:
1) change calculation to manual
2) set a keystroke event that starts calculation on a delay timer (eg
10 no-key seconds)
3) also (this seems the hardest) set a keystroke event that stops an
ongoing calculation upon any key press

-MVL


  #3   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default controlling excel recalculation in VBA?

I know I can do that, but there never seems to be a good time to hit
F9. I like how it automatic mode recalulates while idle so I don't
have to consciously choose a 1-2 minute downtime period to wait for
recalculation. My problem is working around the issue where automatic
mode forces an uninterruptable recalc after a paste.

-MVL

  #4   Report Post  
Posted to microsoft.public.excel.programming
No Name
 
Posts: n/a
Default controlling excel recalculation in VBA?

As a quick and easy step, change the CalculationInterruptKey

Application.CalculationInterruptKey = xlAnyKey

That seems to do what you outline in your steps.


wrote in message
ups.com...
I have a huge excel model that takes 1-2 minutes to recalculate each
time I change data.

I like the concept of automatic recalculation, in that it stops
recalculating while you type and waits until idle to kick off the
recalculation.

However, excel has an annoyance that it forces an uninterruptable
recalculation each time I paste data (in auto-recalc mode).

Is there any way to set up excel so it doesn't do an uninterruptable
recalc upon paste, but still recalcs on idle?

Assuming the answer to the above is no, is there a way to
programatically start and suspend recalculation so that I can write
this manually?

I'm thinking of writing VBA code along the following lines:
1) change calculation to manual
2) set a keystroke event that starts calculation on a delay timer (eg
10 no-key seconds)
3) also (this seems the hardest) set a keystroke event that stops an
ongoing calculation upon any key press

-MVL



  #5   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 180
Default controlling excel recalculation in VBA?

OK..then try this....
use Application.onTime method to enforce the automatic calculation.

create a new function that calculates the worksheet and call this at a fixed
interval using Application.OnTime.

--
Pranav Vaidya
VBA Developer
PN, MH-India
If you think my answer is useful, please rate this post as an ANSWER!!


" wrote:

I have a huge excel model that takes 1-2 minutes to recalculate each
time I change data.

I like the concept of automatic recalculation, in that it stops
recalculating while you type and waits until idle to kick off the
recalculation.

However, excel has an annoyance that it forces an uninterruptable
recalculation each time I paste data (in auto-recalc mode).

Is there any way to set up excel so it doesn't do an uninterruptable
recalc upon paste, but still recalcs on idle?

Assuming the answer to the above is no, is there a way to
programatically start and suspend recalculation so that I can write
this manually?

I'm thinking of writing VBA code along the following lines:
1) change calculation to manual
2) set a keystroke event that starts calculation on a delay timer (eg
10 no-key seconds)
3) also (this seems the hardest) set a keystroke event that stops an
ongoing calculation upon any key press

-MVL




  #6   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 3
Default controlling excel recalculation in VBA?

Thanks to both for the help. I was able to get the ontimer working,
but did have to workaround 2 Excel quirks:

1) Application.CalculationInterruptKey = xlAnyKey seems to be changed
to xlNoKey (at least temporarily) after a large paste. I had to
include the Application.CalculationInterruptKey = xlAnyKey statement
inside my timer sub. I suspect this is the same "optimization" that
MS did that prevents interruption after paste in Automatic mode. I'm
hoping MS will be nice and create a registry flag to shut this off.

2) I lose the clipboard during a recalc. I had to check for
Application.CutCopyMode = 0 before executing the recalc.

I have a 3rd bug that I haven't been able to fix. The "end" mode
(when the END key is pressed) resets upon a recalc as well. Is there
a vba property that can read the "end" state? Googling "end" returns
way to many irrelevant results.

-MVL

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
How do I stop a recalculation in Excel? tengel Excel Discussion (Misc queries) 6 November 7th 08 11:04 PM
Excel 2007 Recalculation Bug [email protected] Excel Programming 2 November 6th 06 07:49 PM
Excel formulas and recalculation Peter Excel Discussion (Misc queries) 3 June 8th 05 10:17 PM
Excel recalculation R Ormerod Excel Discussion (Misc queries) 3 May 4th 05 01:56 PM
Forced recalculation in Excel Claude Excel Programming 1 October 16th 03 10:28 AM


All times are GMT +1. The time now is 04:20 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"