Ao atualizar uma Tabela Dinâmica no Excel, as larguras das colunas frequentemente voltam ao tamanho padrão, em vez de manter as larguras que você definiu cuidadosamente. Isso acontece porque o comportamento de ajuste automático do Excel para campos da Tabela Dinâmica substitui seus ajustes manuais de largura após cada atualização. Este artigo explica por que as larguras são redefinidas e oferece quatro métodos confiáveis para impedir o redimensionamento. Você aprenderá a travar as larguras das colunas usando opções da Tabela Dinâmica, código VBA e truques de formatação.
Principais Conclusões: Impedir que a Atualização da Tabela Dinâmica Redimensione Colunas
- Opções da Tabela Dinâmica > Layout e Formato > Ajustar largura das colunas ao atualizar: Desmarque esta caixa para evitar que o Excel redimensione automaticamente as colunas após uma atualização.
- Opções da Tabela Dinâmica > Layout e Formato > Preservar formatação de células ao atualizar: Marque esta caixa para manter as larguras manuais das colunas e a formatação das células após uma atualização.
- Evento Workbook_SheetPivotTableUpdate do VBA: Use uma macro para reaplicar automaticamente as larguras de coluna salvas após cada atualização da Tabela Dinâmica.
Por que a Atualização da Tabela Dinâmica Redefine as Larguras das Colunas
Por padrão, o Excel aplica um comportamento de ajuste automático às colunas da Tabela Dinâmica toda vez que você atualiza os dados. A configuração é controlada pela caixa de seleção Ajustar largura das colunas ao atualizar dentro das Opções da Tabela Dinâmica. Quando esta caixa está marcada, o Excel recalcula a largura ideal para cada coluna com base no texto ou número mais longo exibido no momento. Se você ajustou manualmente uma coluna para ser mais larga ou mais estreita do que o resultado do ajuste automático, a atualização substitui seu ajuste.
Uma segunda configuração, Preservar formatação de células ao atualizar, também afeta as larguras das colunas. Quando esta opção está desativada, o Excel descarta toda a formatação manual, incluindo larguras de coluna, após uma atualização. Ambas as opções estão localizadas na mesma caixa de diálogo e trabalham juntas para controlar se seu layout sobrevive a uma atualização de dados.
Passos para Desativar o Ajuste Automático e Preservar as Larguras das Colunas
A correção mais rápida é desativar a opção de ajuste automático e ativar a opção de preservar formatação. Esses passos funcionam no Excel 2016, Excel 2019, Excel 2021 e Microsoft 365.
- Clique com o botão direito em qualquer célula dentro da Tabela Dinâmica
Selecione Opções da Tabela Dinâmica no menu de contexto. A caixa de diálogo Opções da Tabela Dinâmica é aberta. - Vá para a guia Layout e Formato
Clique na guia Layout e Formato no topo da caixa de diálogo. - Desative Ajustar largura das colunas ao atualizar
Na seção Formato, desmarque a caixa rotulada Ajustar largura das colunas ao atualizar. Isso impede que o Excel redimensione as colunas automaticamente após uma atualização. - Ative Preservar formatação de células ao atualizar
Marque a caixa rotulada Preservar formatação de células ao atualizar. Isso instrui o Excel a manter suas larguras manuais de coluna e outras formatações de célula após uma atualização de dados. - Clique em OK e teste uma atualização
Feche a caixa de diálogo clicando em OK. Clique com o botão direito na Tabela Dinâmica e escolha Atualizar. As larguras das colunas devem permanecer inalteradas.
O Que Fazer se as Larguras Ainda Mudarem
Se as larguras das colunas ainda forem redefinidas após aplicar os passos acima, o problema provavelmente é causado por um estilo de Tabela Dinâmica que aplica larguras específicas às colunas ou por formatação condicional que aciona um recálculo do layout. Tente limpar todas as regras de formatação condicional do intervalo da Tabela Dinâmica. Além disso, mude para um estilo de Tabela Dinâmica simples selecionando Design da Tabela Dinâmica > Estilos de Tabela Dinâmica > Limpar.
Use uma Macro VBA para Travar as Larguras das Colunas Permanentemente
Para usuários que atualizam Tabelas Dinâmicas com frequência, as configurações manuais acima podem não ser suficientes se a opção de preservar formatação falhar devido a uma pasta de trabalho corrompida ou a um ambiente compartilhado. Uma macro VBA pode salvar as larguras atuais das colunas e reaplicá-las após cada atualização.
- Abra o Editor VBA
Pressione Alt + F11 para abrir o editor do Visual Basic for Applications. - Insira um novo módulo
No Explorador de Projetos, clique com o botão direito em VBAProject (NomeDaSuaPastaDeTrabalho) e selecione Inserir > Módulo. - Cole o código da macro
Copie e cole o seguinte código no módulo:
Private Sub Workbook_SheetPivotTableUpdate(ByVal Sh As Object, ByVal Target As PivotTable)
Dim pt As PivotTable
Dim ws As Worksheet
Dim rng As Range
Dim col As Range
Dim colWidths() As Double
Dim i As Long
Set ws = Sh
Set pt = Target
Set rng = pt.TableRange1
ReDim colWidths(1 To rng.Columns.Count)
For i = 1 To rng.Columns.Count
colWidths(i) = rng.Columns(i).ColumnWidth
Next i
Application.EnableEvents = False
For i = 1 To rng.Columns.Count
rng.Columns(i).ColumnWidth = colWidths(i)
Next i
Application.EnableEvents = True
End Sub
- Salve a pasta de trabalho como um arquivo habilitado para macro
Pressione Ctrl + S. Na caixa de diálogo Salvar Como, escolha Pasta de Trabalho Habilitada para Macro do Excel (xlsm) no menu suspenso de tipo de arquivo. - Teste a macro
Feche o editor VBA. Atualize qualquer Tabela Dinâmica na pasta de trabalho. A macro salva as larguras antes da atualização e as reaplica após a conclusão da atualização.
Método Alternativo: Copiar e Colar Valores com Larguras
Se você não quiser usar VBA e as configurações acima ainda falharem, você pode copiar toda a Tabela Dinâmica e colá-la como valores. Isso remove a funcionalidade da Tabela Dinâmica, mas preserva suas larguras de coluna permanentemente.
- Selecione toda a Tabela Dinâmica
Clique em qualquer célula dentro da Tabela Dinâmica e pressione Ctrl + A duas vezes para selecionar todo o intervalo da Tabela Dinâmica, incluindo a área de filtro de relatório. - Copie a seleção
Pressione Ctrl + C. - Cole como valores com as larguras de coluna de origem
Clique com o botão direito na célula inicial onde você deseja os dados estáticos. Em Opções de Colagem, clique no ícone Manter Larguras das Colunas de Origem. Os dados são colados como valores estáticos com as larguras exatas de coluna que você definiu.
Se o Excel Ainda Tiver Problemas Após a Correção Principal
Larguras das Colunas da Tabela Dinâmica Mudam Após Atualizar com Novos Dados
Se você adicionar novas linhas aos dados de origem e os novos dados contiverem texto mais longo, a Tabela Dinâmica pode expandir mesmo com o ajuste automático desativado. Isso ocorre porque a largura da coluna é definida para um valor fixo, mas o Excel recalcula a largura se o conteúdo da célula for maior que a largura da coluna e a opção Quebrar Texto Automaticamente estiver desativada. Para evitar isso, defina manualmente a largura da coluna para um valor maior do que qualquer conteúdo esperado, ou ative Quebrar Texto Automaticamente para o intervalo da Tabela Dinâmica.
Larguras das Colunas Redefinidas Após Abrir uma Pasta de Trabalho Compartilhada
Quando vários usuários editam uma pasta de trabalho compartilhada, as configurações da Tabela Dinâmica podem reverter porque cada cliente Excel do usuário aplica suas próprias opções padrão. Peça a todos os usuários que apliquem as mesmas Opções da Tabela Dinâmica descritas na correção principal. Alternativamente, use a abordagem de macro VBA, pois ela é executada automaticamente para cada usuário, independentemente de suas configurações locais.
Colunas da Tabela Dinâmica Desaparecem ou Recolhem para Largura Zero
Uma largura de coluna zero acontece quando o campo da Tabela Dinâmica está vazio após uma atualização. Isso não é um bug, mas um resultado dos dados de origem não retornarem nenhum valor para aquele campo. Verifique os dados de origem quanto a registros ausentes ou filtrados. Para ocultar colunas vazias automaticamente, use a lista de campos da Tabela Dinâmica para remover o campo ou aplicar um filtro que exclua valores vazios.
Reparação Rápida vs Reparação Online: Principais Diferenças
| Item | Configuração das Opções da Tabela Dinâmica | Macro VBA |
|---|---|---|
| Descrição | Desativa o ajuste automático e preserva a formatação por meio da caixa de diálogo interna | Salva e reaplica as larguras das colunas programaticamente após cada atualização |
| Facilidade de configuração | Simples, sem necessidade de codificação | Requer conhecimento de VBA e pasta de trabalho habilitada para macro |
| Funciona para todos os usuários | Aplica-se apenas ao usuário que define a opção | Executa para todos os usuários que abrem a pasta de trabalho com macros habilitadas |
| Lida com novos dados mais longos | Não, a largura da coluna permanece fixa | Sim, a macro pode ser modificada para ajustar as larguras dinamicamente |
| Risco de corrupção | Nenhum | Baixo, mas macros podem ser bloqueadas por configurações de segurança |
Agora você pode atualizar suas Tabelas Dinâmicas sem perder os ajustes de largura das colunas. Comece desativando Ajustar largura das colunas ao atualizar e ativando Preservar formatação de células ao atualizar nas Opções da Tabela Dinâmica. Se o problema persistir, use a macro VBA para travar as larguras permanentemente. Para um relatório completamente estático, cole a Tabela Dinâmica como valores com as larguras das colunas de origem.