Criando evento Deactivate para Grafico Excel VBA
O Excel VBA possui vários eventos que podem ser utilizado pelo usuário, mas em determinadas situações não atende a necessidade especificas, nessa postagem vou demonstrar como estender eventos para gráficos.
1) Entre no VBA depois em clique em Inserir>Módulo de classe.

2) Click no módulo para seleciona-lo depois nas Propriedades do módulo altere o nome para ChartEventCls.

3) Ao final o resultado deve ser como a a imagem abaixo.

De um duplo click no módulo de classe, copie e cole o código abaixo.
Option Explicit
Public WithEvents clsCht As Chart
Private Sub clsCht_Deactivate()
MsgBox Me.clsCht.Name & "‚ foi desativado"
End Sub
Pronto!!! Já criamos esse evento para todos os gráficos, mas agora vamos precisar inicializar esse evento para que comece a ser utilizado, para isso vamos criar uma rotina em um módulo.
1) Entre no VBA depois em Inserir>Módulo

2) Ao final o resultado deve ser como a a imagem abaixo.

De um duplo click no módulo, copie e cole o código abaixo.
Option Explicit
'Criando variavel de objeto para evento
Dim objChtCls As New ChartEventCls
'Inicialiando o evento
Sub InitializeChartEvent()
Set objChtCls.clsCht = Worksheets(1).ChartObjects(1).Chart
End Sub
'Finalizando o evento
Sub finalizeCharEvent()
Set objChtCls.clsCht = Nothing
End Sub
Nesse exemplo mostrei como dar o start manualmente por uma rotina, mas nada impede a execução por um evento padrão tipo open.
Clique aqui para baixar o arquivo desse passo a passo.
