Notifications
Clear all

Adicionar evento à uma planilha que foi criada dinamicamente

2 Posts
2 Usuários
0 Reactions
729 Visualizações
(@osmarditto)
Posts: 7
Active Member
Topic starter
 

Olá senhores,

 

Alguém sabe como posso adicionar um event listener à uma planilha que criei dinamicamente?

Preciso disparar uma ação toda vez que algum dado for alterado nesta planilha. 

Se fosse uma planilha comum, eu adicionaria o método Worksheet_Change, mas como fazer a mesma coisa a partir de um módulo?

 
Postado : 27/10/2022 4:33 pm
Tags do Tópico
EdsonBR
(@edsonbr)
Posts: 1057
Noble Member
 

Bem vindo de volta, @osmarditto!

Vc deve criar o objeto em uma classe usando a palavra-chave WithEvents, que pode ser ou num módulo de classe ou numa das classes pré-existentes como a EstaPastaDeTrabalho.

Por exemplo, nesse último, na área de declarações:

Dim WithEvents ws As Worksheet

Aí vc poderia ter na armadilha de eventos Change:

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    If Sh Is ws Then Debug.Print "iéié!!!"
End Sub

 

Veja que até este ponto ainda não foi criada uma nova ws.

Em algum ponto de seu código principal lá estaria

Sub XYZ()

  ...

  ...

  Set ws = Worksheets.Add


  ...

End Sub

 

Desse ponto em diante, a ws responderia ao evento Change.

 
Postado : 27/10/2022 8:36 pm