You are currently offline, waiting for your internet to reconnect

XL97: How to Use EnableEvents to Disable Event Handling

This article was previously published under Q165867
This article has been archived. It is offered "as is" and will no longer be updated.
In Microsoft Excel, you can create event handlers, which are Visual Basicfor Applications macros that respond to specific events. An event handlercan be run by another Visual Basic macro. This article contains an examplemacro that disables event handling while a Visual Basic for Applicationsmacro is running.
Microsoft provides programming examples for illustration only, without warranty either expressed or implied, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific needs.
If you have limited programming experience, you may want to contact a Microsoft Certified Partner or Microsoft Advisory Services. For more information, visit these Microsoft Web sites:

Microsoft Certified Partners -

Microsoft Advisory Services -

For more information about the support options that are available and about how to contact Microsoft, visit the following Microsoft Web site:;EN-US;CNTACTMS

Creating a Sample Event Procedure

In this example you set up a Visual Basic for Applications macro thatresponds to the SelectionChange event in a worksheet. To set up the eventhandler, use the following steps:

  1. Close and save any open workbooks, and then create a new workbook.
  2. Start the Visual Basic Editor (press ALT+F11).
  3. If the Project Explorer window is not visible, click Project Explorer on the View menu.
  4. Double-click Sheet1 to open the Code window for Sheet1.
  5. In the Code window for Sheet1, enter the following code for the SelectionChange event:
          Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)          MsgBox ActiveCell.Address      End Sub						
  6. Switch to Microsoft Excel (ALT+F11).
  7. Click any cell on Sheet1.
When you click a cell on Sheet1, a message box displays the cell address ofthe selected cell.

Using a Procedure to Run the Event Handler

The following sample macro runs the event handler. To set up the macro, usethe following steps:

  1. Start the Visual Basic Editor (press ALT+F11).
  2. On the Insert menu, click Module.
  3. Enter the following code into the Visual Basic module:
          Sub FireEvent()          For X = 1 To 5              Cells(X, 1).Select          Next X      End Sub						
  4. Switch to Microsoft Excel (ALT+F11).
  5. On the Tools menu, point to Macro, and then click Macros. Then, click FireEvent and click Run.
A message box appears every time the FireEvent macro selects a cell onSheet1.

Preventing the Event Procedure from Running

To prevent an event handler from running while a macro is running, set theEnableEvents property to False. To use the EnableEvents property in anexample, use the following steps:

  1. Start the Visual Basic Editor (press ALT+F11).
  2. On the Insert menu, click Module.
  3. Type the following macro in the module:
          Sub DisableEvent()         'Disable all event firing.         Application.EnableEvents = False         For X = 1 To 5            Cells(X, 1).Select         Next X         'Re-enable all event firing.         Application.EnableEvents = True      End Sub						
  4. Switch to Microsoft Excel (press ALT+F11).
  5. On the Tools menu, point to Macro, and click Macros. Then, click DisableEvent and click Run.
No message boxes appear during the execution of the macro. This indicatesthat the SelectionChange event is not running. If you select another cellon Sheet1 after the DisableEvent macro is finished running, the eventhandler is active again and a message box appears.

NOTE: If you do not set the EnableEvents property to True before your macrofinishes running, events are disabled. If you set the EnableEvents propertyto False make sure that you set it back to True.
For more information about using event handlers, click the OfficeAssistant, type events, click Search, and thenclick to view the "Using events with Microsoft Excel objects" topic.

NOTE: If the Assistant is hidden, click the Office Assistant button on theStandard toolbar. If Microsoft Excel Help is not installed on yourcomputer, please see the following article in the Microsoft Knowledge Base:
120802 Office: How to Add/Remove a Single Office Program or Component

Article ID: 165867 - Last Review: 12/04/2015 16:39:09 - Revision: 2.4

Microsoft Excel 97 Standard Edition

  • kbnosurvey kbarchive kbhowto kbprogramming KB165867