Listar todas tabelas dinâmicas

Como Listar todas tabelas dinâmicas do seu arquivo Excel com VBA

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


Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Comentários

11 respostas para “Como Listar todas tabelas dinâmicas do seu arquivo Excel com VBA”

  1. Acertou miserávi!! Funcionou!!!!

    1. hehehhehe excelente comentário!

  2. Valeu meu caro, salvou!

    1. Show de bola a intenção é esta mesmo! haha Abraços!

  3. Avatar de João Pádua

    Excelente! Parabéns e muito obrigado.

    1. Obrigado pelo feedback! Abraços

    2. Agradeço pelo feedback. Abraços

  4. SHOW
    Congratulatios for sharing, friend.

  5. SHOWWWWW .

    me salvou!!!

    1. Showww de Bola! Abraços!

  6. […] Como Listar todas tabelas dinâmicas do seu arquivo Excel com VBA […]