Excel VBA – Alterar campos de tabela dinâmica para Soma

Excel VBA – Alterar campos de tabela dinâmica para Soma

Alterar campos de tabela dinâmica para soma

Neste artigo vamos apresenta um código para alterar todos os campos de valor de uma tabela dinâmica para a função SOMA.

Este procedimento foi criado porque me deparei com uma planilha em que haviam 24 colunas, uma para cada mês com relação ao valor da venda e mais 12  para a comissão da filial. Estas colunas deveriam conter portanto a soma das vendas e a soma das comissões.

Quando criamos uma tabela dinâmica, todos os campos de valor são criados com o tipo contagem como Default, e infelizmente não tem como mudar este padrão.

Sendo assim, este procedimento teria que ser feito manualmente para cada uma das colunas, o que em um primeiro momento, está OK, mas além disso ainda é necessário configurar cada uma das colunas para o formato Decimal, o que já cria mais uma tarefa manual desnecessária.

Para esta tarefa criei portanto o seguinte código VBA Excel. Ele altera todos os campos de valor de uma tabela dinâmica para a função SOMA.

Sub lsCamposTDSoma()
    On Error GoTo TratarErro
 
    Dim PvtTbl As PivotTable
    Dim pvtFld As PivotField
    Dim strPvtFld As String
    Set PvtTbl = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)
 
    For Each pvtFld In PvtTbl.DataFields
        pvtFld.Function = xlSum
        pvtFld.NumberFormat = "#,##0.00"
    Next
   
Sair:
    Exit Sub
TratarErro:
    MsgBox "Não existem campos de valor, ou não foi selecionada uma tabela dinâmica!"
    GoTo Sair
End Sub

Para funcionar é muito simples. Basta clicar sobre a tabela dinâmica que gostaria de formatar e executar a macro lsCamposTDSoma, lembrando que para utilizar funções VBA em todas as planilhas você deve seguir os procedimentos descritos neste artigo:
Habilitando a guia desenvolvedor e copiando procedimentos VBA da Internet

Alterar campos de tabela dinâmica para soma 2

Assim que for executada a macro, todos os campos de valor serão então alterados para o tipo SOMA, conforme abaixo:

Alterar campos de tabela dinâmica para soma 3

Então é isso, no próximo artigo tratarei mais de como manipular tabelas dinâmicas utilizando VBA.[saiba_mais]

Abraço

Marcos Rieper

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel