/ / Executar uma macro quando uma tabela dinâmica é inserida do banco de dados MySQL - mysql, excel, vba, excel-vba, tabela dinâmica

Executar uma macro quando uma tabela dinâmica é inserida do banco de dados MySQL - mysql, excel, vba, excel-vba, tabela dinâmica

Gostaria que uma macro do Excel fosse executada automaticamente quando uma Tabela Dinâmica fosse inserida de um Banco de Dados MySQL usando o suplemento MySQL para Excel.

A tabela dinâmica é inserida em uma planilha quejá existe e ocupa o intervalo A2: CN600, dependendo de quantas linhas a tabela possui. Eu tenho o seguinte código, que funciona perfeitamente quando uma célula no intervalo especificado é alterada:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCells As Range

Set KeyCells = Range("A2:CN600")

If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then


MsgBox "Cell " & Target.Address & " has changed."

End If
End Sub

Experimentalmente, eu inseri o banco de dados MySQL comouma tabela dinâmica nessa planilha para ver o que aconteceria, mas nenhuma caixa de mensagem apareceu. Quando eu pressione Ctrl + a e Delete para remover a tabela, recebi a mensagem:

Cell $ A $ 2: $ CN $ 600 foi alterado.

Como posso modificar este código para que ele sejaexibir a caixa de mensagem quando a tabela é inserida? Eu entendo que o código acima é mais adequado para um caso em que os valores da célula são alterados um de cada vez, em vez de um intervalo grande ter seu valor alterado de uma vez.

Respostas:

2 para resposta № 1

Tabelas dinâmicas são um pouco diferentes - assim, para elas, há outros eventos. Experimente este evento:

Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
MsgBox Target.TableRange1.Address
End Sub

Dê uma olhada nos outros eventos relacionados à Tabela Dinâmica:

insira a descrição da imagem aqui