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

MR
Marcos Rieper

Especialista em Excel

27 de agosto de 2015 Atualizado 08 de julho de 2026 2 min de leitura
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.

Download — baixe aqui: Alterar campos de tabela dinâmica para soma

Preencha seus dados para receber o link de download no seu e-mail.

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:

Principais recursos

Confira o que este material oferece para você.

Organização por data e etapas
Classificação automática
Ranking e destaques
Fluxos e etapas automáticas
Dashboard com indicadores
Atualização automática por fórmulas

Perguntas frequentes

O material é realmente gratuito?

Sim. O acesso é gratuito e não exige cadastro.

Preciso ter o Excel instalado?

Recomendamos o Excel 2013 ou superior para todos os recursos.

Como faço para receber atualizações?

As atualizações são automáticas dentro da própria planilha.

Funciona no Excel do Mac?

Sim, funciona no Excel para Windows e para Mac.

Funciona no celular?

É possível visualizar no app do Excel; a edição completa é no computador.

Planilhas relacionadas

Planilha de Fluxo de Caixa

Planilha de Fluxo de Caixa

(1.327)

R$ 89,90

Controle de Estoque

Controle de Estoque

(962)

R$ 69,90

Planilha Financeira Empresarial

Planilha Financeira Empresarial

(1.254)

R$ 79,90

Dashboard Financeiro no Excel

Dashboard Financeiro no Excel

(689)

R$ 49,90

Continue lendo

Curso Excel Master — Básico ao Avançado, VBA, PowerPoint e mais

Receba conteúdos e novidades direto no seu e-mail

Dicas, tutoriais, planilhas gratuitas e muito mais.

Não enviamos spam. Cancele quando quiser.

Download imediato

Acesso na hora após a compra

Compra 100% segura

Seus dados protegidos com SSL

Acesso vitalício

Use para sempre, sem mensalidades

Suporte via WhatsApp

Atendimento rápido e humanizado