You are on page 1of 3

Speed up your VBA code with this pair of macros from the 

wellsrPRO community. These
subroutines can dramatically increase the speed of your VBA macros by

1. Disabling Automatic Calculations


2. Disabling Screen Updating
3. Disabling Event Notifications
4. Disabling Alerts

The macros in this post were submitted by user Jomili.

Reader’s Note: This is the second article in a new series featuring macros submitted by
my incredible wellsrPRO community members. These articles are similar to my Code
Library articles in that they usually won’t contain an accompanying detailed tutorial.

If you’re an existing wellsrPRO member, don’t forget to submit your own macro to the


wellsrPRO community using the Share My Macros button.

wellsrPRO users can automatically import this community submission directly into their
spreadsheet. Just look for “Community Submissions” in the Auto-Import dropdown menu.

Speed up your VBA Macros


Created by Jomili
Sub SpeedOn()
'Turns off the time wasters
With Application
.Calculation = xlCalculationManual
.ScreenUpdating = False
.EnableEvents = False
.DisplayAlerts = False
.Cursor = xlWait
.EnableCancelKey = xlErrorHandler
End With
End Sub

Like Jomili says in his comment, the macro above turns off time wasters that may slow
down your VBA code. To turn them back on, use the following macro:

Get these macros delivered right to your spreadsheet


for free
Access tutorials and import my macros without ever leaving Excel

 Show me - It's free

Return to Defaults
Created by Jomili
Sub SpeedOff()
'Turns on the time wasters
With Application
.Calculation = xlCalculationAutomatic
.ScreenUpdating = True
.EnableEvents = True
.DisplayAlerts = True
.Cursor = xlDefault
.StatusBar = False
.EnableCancelKey = xlInterrupt
End With
End Sub
You can adapt these codes to disable and enable other application features that may be
slowing down your macro.

Using thes macros to speed up your code


To speed up your macro, all you have to do is call the SpeedOn macro at the beginning of
your slow macro and call the SpeedOff macro at the end of it. Here’s an example:

Sub ReallySlowMacro()
Call SpeedOn
'
'
'
' Your really slow macro goes here
'
'
'
Call SpeedOff
End Sub

Reach out to my VBA Consulting page if you have questions and I’ll be happy to help you
out!

Please share this article with your friends on Facebook, Twitter, and Google+.

If you’re ready to free up your time in the office, visit my Excel Add-ins page for some great
automation products.

You might also like