Run macro from function key

George J

Well-known Member
Joined
Feb 15, 2002
Messages
959
I have the following code to switch the sheet calculation from Manual (done to speed up another macro - copy & paste lots of detail from other sheets), to Automatic.

I am not sure how to go about it, but am sure the onkey command is correct.

Private Sub Worksheet_calculate()
Application.OnKey "{F12}", "Calculate_Auto"
End Sub


I am wanting to press F12 to revert back to
Automatic calculation for the whole sheet. I know pressing F9 refreshes the calculations, but the option is still set to manual.

Sub Calculate_Auto()
'
' Calculate_Auto Macro
' Macro recorded 28/03/2002 by gj
'

'
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub

As I will be using this macro after other macros, I need it to be running in the background until F12 is pressed and the macro is run. I need this one spelled out for me I'm afraid.

Currently, pressing F12 brings up the "save as" screen.

Thanks in advance.
 

Excel Facts

Excel Joke
Why can't spreadsheets drive cars? They crash too often!
On 2002-04-19 16:40, George J wrote:
I have the following code to switch the sheet calculation from Manual (done to speed up another macro - copy & paste lots of detail from other sheets), to Automatic.

I am not sure how to go about it, but am sure the onkey command is correct.

Private Sub Worksheet_calculate()
Application.OnKey "{F12}", "Calculate_Auto"
End Sub


I am wanting to press F12 to revert back to
Automatic calculation for the whole sheet. I know pressing F9 refreshes the calculations, but the option is still set to manual.

Sub Calculate_Auto()
'
' Calculate_Auto Macro
' Macro recorded 28/03/2002 by gj
'

'
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
End Sub

As I will be using this macro after other macros, I need it to be running in the background until F12 is pressed and the macro is run. I need this one spelled out for me I'm afraid.

Currently, pressing F12 brings up the "save as" screen.

Thanks in advance.

You just want to set up the f12 key to toggle automatic/manual calculation? Or what? Your first routine is ok:<font size =-1>
Private Sub Worksheet_calculate()
Application.OnKey "{F12}", "Calculate_Auto"
End Sub<font size =+.5>

But it needs to be run. It looks like you are trying to put it in the calculate event right? You dont need to do that. Put it in the Workbook_Open() event, I think that would be better. (in vba click on "this workbook" and dump the following in there:<font size =-1>
Private Sub Workbook_Open()
Application.OnKey "{F12}", "Calculate_Auto"
End Sub</font><font size =+.5>
Now change the calculate_auto to the following so it will toggle:<font size =-1>
Sub calculate_auto()
If Application.Calculation = xlCalculationAutomatic Then
Application.Calculation = xlCalculationManual
Else
Application.Calculation = xlCalculationAutomatic
End If
End Sub<font size =+1>
This message was edited by John McGraw on 2002-04-19 17:22
 
Upvote 0
Forgot to mention that I was puting this into a template.

Workbook open doesn't do it, but worksheet_activate does.

Sanity is restored.

thanks
 
Upvote 0

Forum statistics

Threads
1,213,561
Messages
6,114,315
Members
448,564
Latest member
ED38

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top