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

Excel VBA – 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

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

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:

Sair da versão mobile