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 -