I\'ve got a code written that categorizes employees along with their qualifications. In order to weed out employees with unwanted qualifications I have applied a filter to e
The ozgrid code you mentioned tells you that you can put your code in a worksheet_calculate
event (in the worksheet module), as long as you have something that will recalculate when you change your autofilter. This something can be a subtotal formula that you can hide in your worksheet, e.g. =subtotal(3,A:A)
Still need to investigate but looks like Chart Calculate event is triggered when Calculation = xlCalculationManual. At least works on my Excel 2007. So the steps are:
create a new class e.g. clsChartEvents:
Public WithEvents Chart As Chart
Private Sub Chart_Calculate()
Stop
End sub
add this code to some module or class:
Private chartEvents as new ChartEvents 'create a module-scope variable
sub SubscribeToChartEvents
set chartEvents.Chart = Sheet1.ChartObjects("Chart 1").Chart
end sub
The key points from my article Trapping a change to a filtered list with VBA
There is more detail and a sample file with the article, the key points are summarised below
SUBTOTAL
formula in A1
pointing back to the range being filtered on the main sheet.Worksheet_Calculate()
Event is added to the "dummy" WorkSheet, this Event fires when the SUBTOTAL
formula updates when the filter is changed.The next two setps are needed if it is desired to run the Workbook Calculation as Manual
Workbook_Open
Event to set the EnableCalculation
property of all sheets other than "Dummy" to False.