Olá Amigo, neste artigo você aprenderá a Listar todas tabelas dinâmicas do seu arquivo Excel com VBA.
Muitas vezes estamos trabalhando com arquivos grandes e na maioria das vezes estes arquivos possuem muitas tabelas dinâmicas, conexões e vínculos, a pior coisa do mundo é quando atualizamos nossa base de dados vinculada ao SQL e e somos sinalizados que alguma tabela dinâmica está sobrescrevendo a outra ou que determinada tabela dinâmica não pode ser atualizada, e agora? O que faremos? Onde vou encontrar a Tabela dinâmica “X”,”Y” ou “Z”?
Com o código abaixo você deixará de gastar muito tempo procurando onde está e qual é a tabela que está com problema.
Para resolver este problema disponibilizo abaixo o código gratuitamente e de maneira simples, para que você possa implementar no seu arquivo através de um módulo no VBA e listar todas as tabelas dinâmicas do seu arquivo excel…
Só relembrando que o para acessar o ambiente de programação do VBA você deve utilizar os atalhos LT+F11, e posteriormente clicar em inserir módulo.
Listar todas tabelas dinâmicas do arquivo:
Sub ListarPivots() 'Código disponibilizado através do site douglasgodoy.com.br Dim St As Worksheet Dim NewSt As Worksheet Dim pt As PivotTable Dim I, K As Long Application.ScreenUpdating = False 'Adiciona uma nova Sheet na pasta de trabalho Set NewSt = Worksheets.Add plan = NewSt.Name 'Insere na linha 1 os títulos das colunas I = 1: K = 2 With NewSt .Cells(I, 1) = "Nome" .Cells(I, 2) = "Source" .Cells(I, 3) = "Atualizado por" .Cells(I, 4) = "Data de Atualização" .Cells(I, 5) = "Sheet/Aba" .Cells(I, 6) = "Local" 'Faz um loop mapeando os dados de todas as pivots/tabelas dinâmicas For Each St In ActiveWorkbook.Worksheets For Each pt In St.PivotTables I = I + 1 .Cells(I, 1).Value = pt.Name .Cells(I, 2).Value = pt.SourceData .Cells(I, 3).Value = pt.RefreshName .Cells(I, 4).Value = pt.RefreshDate .Cells(I, 5).Value = St.Name .Cells(I, 6).Value = pt.TableRange1.Address Next Next .Activate End With Application.ScreenUpdating = True End Sub
Este código nos ajuda bastante pois através dele conseguimos identificar quais são as tabelas dinâmicas do projeto, seus nomes e onde estão localizadas.
Listar as tabelas dinâmicas na mesma sheet que estão:
Sub ListaTabelas() Dim tabela As PivotTable i = 1 For Each tabela In ActiveSheet.PivotTables Range("A" & i) = tabela.Name i = i + 1 Next tabela End Sub
Caso você também queira saber como listar o nome de todas as sheets de suas planilhas aqui tem um artigo bem interessante:
LISTAR OS NOMES DE SUAS PLANILHAS:
http://douglasgodoy.com.br/vba-listar-os-nomes-de-suas-planilhas/
Espero que este artigo tenha lhe ajudado, por isso deixe seus comentários e sugestões.
Um abraço!
Douglas Godoy
Acertou miserávi!! Funcionou!!!!
hehehhehe excelente comentário!
Valeu meu caro, salvou!
Show de bola a intenção é esta mesmo! haha Abraços!
Excelente! Parabéns e muito obrigado.
Obrigado pelo feedback! Abraços
Agradeço pelo feedback. Abraços
SHOW
Congratulatios for sharing, friend.
SHOWWWWW .
me salvou!!!
Showww de Bola! Abraços!
Pingback: Carregar e-mails do Outlook para o Excel com VBA -