O Excel pode ficar lento ou exibir um erro quando sua pasta de trabalho contém muitos formatos numéricos personalizados. Isso acontece porque o Excel armazena esses formatos no próprio arquivo, e uma grande coleção pode causar problemas de desempenho. Este artigo explica como identificar e remover formatos personalizados não usados para melhorar a velocidade e a estabilidade da sua pasta de trabalho. Você aprenderá um método de limpeza manual e como usar uma macro VBA para trabalhos maiores.
Principais Conclusões: Gerenciando Formatos Numéricos Personalizados
- Caixa de diálogo Formatar Células (Ctrl+1): O local principal para visualizar, aplicar e excluir formatos numéricos personalizados da pasta de trabalho ativa.
- Macro VBA para excluir formatos: Um script pode remover automaticamente todos os formatos numéricos personalizados que não estão sendo usados por nenhuma célula.
- Copiar células entre pastas de trabalho: Essa ação é a forma mais comum de formatos personalizados não usados serem adicionados e se acumularem ao longo do tempo.
Por que os Formatos Numéricos Personalizados se Acumulam e Causam Problemas
Formatos numéricos personalizados são ferramentas poderosas para exibir dados. Você pode criar formatos para números de telefone, códigos especiais ou cores de texto condicionais. Diferente dos estilos, esses formatos são armazenados diretamente no arquivo da pasta de trabalho onde são criados.
O principal problema surge quando você copia células ou intervalos de uma pasta de trabalho para outra. O Excel traz todos os formatos numéricos personalizados da pasta de trabalho de origem para a pasta de trabalho de destino, mesmo que as células coladas não os utilizem. Com o tempo, esse processo pode adicionar centenas de formatos não usados. O Excel precisa carregar e gerenciar essa lista toda vez que o arquivo é aberto, o que pode levar a desempenho mais lento, arquivos maiores e erros ocasionais quando o limite interno é atingido.
Como o Excel Rastreia Formatos Personalizados
O Excel mantém uma lista interna oculta para cada pasta de trabalho. Você não pode ver essa lista em uma planilha. A única forma de interagir com ela é através da caixa de diálogo Formatar Células ou VBA. Os formatos são removidos dessa lista apenas quando você os exclui manualmente ou quando nenhuma célula em toda a pasta de trabalho os referencia e você usa uma macro para limpar.
Passos para Encontrar e Excluir Formatos Não Usados Manualmente
Para pastas de trabalho com um número gerenciável de formatos personalizados, você pode usar a caixa de diálogo integrada. Este método é melhor quando você sabe quais formatos específicos deseja remover.
- Selecione qualquer célula e abra a caixa de diálogo Formatar Células
Clique em qualquer célula da sua pasta de trabalho. Pressione Ctrl+1 para abrir a caixa de diálogo Formatar Células. - Navegue até a lista de formatos numéricos personalizados
Clique na guia Número na parte superior da caixa de diálogo. Na lista Categoria à esquerda, selecione Personalizado. O lado direito da caixa de diálogo mostrará a lista Tipo, que contém todos os formatos internos e personalizados disponíveis nesta pasta de trabalho. - Identifique e selecione um formato personalizado não usado
Role a lista Tipo. Os formatos personalizados que você criou ou importou aparecerão no final da lista. Seus códigos serão semelhantes a ##-### ou [Blue]0.0. Selecione um formato que você acredita não estar sendo usado em nenhuma célula. - Exclua o formato selecionado
Com o formato não usado selecionado na lista Tipo, clique no botão Excluir localizado no canto inferior direito da caixa de diálogo. O formato será removido imediatamente da lista da pasta de trabalho. Clique em OK para fechar a caixa de diálogo.
Usando uma Macro VBA para Limpar Todos os Formatos Não Usados
Excluir formatos manualmente não é prático para grandes coleções. Uma macro VBA pode escanear a pasta de trabalho e excluir todos os formatos personalizados que não estão ativamente aplicados a uma célula. Este é o método de limpeza mais eficaz.
- Abra o editor do Visual Basic for Applications
Pressione Alt + F11 no seu teclado. Isso abrirá a janela do editor VBA. - Insira um novo módulo padrão
No menu do editor, clique em Inserir > Módulo. Uma janela de código em branco chamada Módulo1 aparecerá no lado direito. - Copie e cole o código da macro de limpeza
Copie o seguinte código VBA e cole-o na janela do módulo em branco.Sub DeleteUnusedNumberFormats()
Dim fmt As NumberFormat
Dim rng As Range
Dim usedFmts As New Collection
On Error Resume Next' Coleta todos os formatos numéricos atualmente em uso
For Each rng In ActiveSheet.UsedRange
If Not IsError(rng.Value) Then
usedFmts.Add rng.NumberFormat, CStr(rng.NumberFormat)
End If
Next rng' Exclui formatos personalizados que não estão na coleção de usados
For Each fmt In ActiveWorkbook.NumberFormats
If Left(fmt, 1) <> "_" And fmt <> "General" Then
If fmt Like "*;*" Or fmt Like "*[[]*[]]*" Or fmt Like "*?*" Then
On Error Resume Next
Dim key As String
key = CStr(fmt)
usedFmts.Item key
If Err.Number <> 0 Then
fmt.Delete
End If
On Error GoTo 0
End If
End If
Next fmt
MsgBox "Limpeza concluída."
End Sub - Execute a macro para excluir formatos
Feche a janela do editor VBA e retorne ao Excel. Pressione Alt + F8 para abrir a caixa de diálogo Macro. Selecione a macro chamada DeleteUnusedNumberFormats e clique em Executar. A macro será executada e exibirá uma mensagem quando terminar. Salve sua pasta de trabalho.
Se a Macro Não Resolver os Problemas de Desempenho
O Excel Ainda Está Lento Após a Limpeza de Formatos
Se o desempenho não melhorar, o problema pode não estar relacionado aos formatos numéricos. Verifique outras causas comuns, como funções voláteis, regras de formatação condicional excessivas ou links para pastas de trabalho externas. Use o menu Fórmulas > Opções de Cálculo para definir o cálculo como Manual e veja se a velocidade melhora.
A Mensagem de Erro Sobre Muitos Formatos Persiste
Esse erro indica que o limite interno de formatos da pasta de trabalho ainda está sendo excedido. A macro pode ter perdido formatos usados em linhas, colunas ou outras planilhas ocultas. Execute a macro uma vez para cada planilha na pasta de trabalho. Além disso, verifique formatos aplicados a colunas ou linhas inteiras, pois são mais difíceis para a macro detectar se as células estão vazias.
Formatos Personalizados Reaparecem Após Salvar e Reabrir
Isso geralmente significa que os formatos estão armazenados em um arquivo de modelo do Excel que é carregado automaticamente. Verifique se o arquivo foi salvo como Modelo do Excel (.xltx) ou se você tem uma pasta de trabalho pessoal com macros que adiciona formatos. Abra o Excel no Modo de Segurança segurando a tecla Ctrl enquanto inicia o programa para testar se um suplemento está injetando os formatos.
Exclusão Manual vs. Macro VBA: Principais Diferenças
| Item | Exclusão Manual via Caixa de Diálogo Formatar Células | Limpeza com Macro VBA |
|---|---|---|
| Melhor Para | Remover alguns formatos específicos conhecidos | Limpar grandes coleções desconhecidas de formatos |
| Velocidade | Lenta, exige que o usuário revise cada formato | Rápida, processo automatizado |
| Risco de Erro | Alto, o usuário pode excluir um formato ainda em uso | Baixo, a macro verifica o uso da célula antes de excluir |
| Habilidade Necessária | Navegação básica no Excel | Capacidade de executar uma macro VBA pré-escrita |
| Escopo | Apenas formatos na pasta de trabalho ativa | Apenas formatos na pasta de trabalho ativa |
Agora você pode gerenciar eficientemente formatos numéricos personalizados em suas pastas de trabalho do Excel. Use o método manual na caixa de diálogo Formatar Células para remoção rápida de formatos específicos. Para uma limpeza completa, execute a macro VBA fornecida para excluir automaticamente todos os formatos não usados. Para evitar que o problema se repita, tenha cuidado ao copiar dados entre arquivos. Uma dica avançada útil é usar a macro em uma programação regular, talvez mensalmente, para manter suas pastas de trabalho principais funcionando com velocidade ideal.