VBA Worksheet change event bypass?

calendar_today Asked Apr 2, 2013
thumb_up 9 upvotes
history Updated April 16, 2026

Question posted 2013 · +4 upvotes

I am fixing a spreadsheet. The programmer made a macro for each sheet to fire when the sheet is changed. This is good because it colour co-ordinates the sheet details when new information is added so I would like to keep this feature.

I have written a macro which sorts the data and allows for removal and addition of new employees, this is in conflict with the change event macro and is causing my macro to have errors if they are both operational.

Q. Is there a way to bypass the worksheet change event while the macro is running and then have it in place again once the macro is finished?

Here is the code for the change event.

Private Sub Worksheet_Change(ByVal target As Excel.Range, skip_update As Boolean)
If skip_update = False Then
    Call PaintCell(target)
End If
End Sub

My macro is bringing up errors when I refer to worksheets or ranges.

Accepted answer +9 upvotes

I think you want the EnableEvents property of the Application object. When you set EnableEvents to False, then nothing your code does will trigger any events and none of the other event code will run. If, for example, your code changes a cell it would normally trigger the Change event or the SheetChange event. However, if you structure it like this

Application.EnableEvents = False
    Sheet1.Range("A1").Value = "new"
Application.EnableEvents = True

then changing A1 won’t trigger any events.

Sometimes it’s beneficial to have to have your code trigger event code and sometimes it’s not. Use EnableEvents when you want to prevent it.

Excel VBA objects referenced (5)

  • Application — Using events with the Application object
  • Application — Working with Other Applications
  • Excel.Range — Refer to Cells by Using a Range Object
  • Excel.Range — Delete Duplicate Entries in a Range
  • Worksheet — Refer to All the Cells on the Worksheet

Top excel-vba Q&A (6)

+9 upvotes ranks this answer #73 out of 136 excel-vba solutions on this site .