VBA – Desligar (ou Ligar) os Cálculos Automáticos

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on April 11, 2023

Sempre que você atualiza um valor de célula, o Excel passa por um processo para recalcular o arquivo. Ao trabalhar diretamente dentro do Excel você quer que isso aconteça 99,9% do tempo (a exceção é se você estiver trabalhando com uma pasta de trabalho extremamente grande). No entanto, isto pode realmente retardar o seu código VBA. É uma boa prática ajustar seus cálculos para manual no início das macros e restaurar os cálculos no final das macros. Se você precisar recalcular a pasta de trabalho, você pode dizer manualmente ao Excel para calcular.

Desligar Cálculos Automáticos

Você pode desligar o cálculo automático com uma macro, definindo-o como xlManual. Use a seguinte linha de código VBA:

Application.Calculation = xlManual

Voltar a Ligar os Cálculos Automáticos

Para ligar novamente o cálculo automático com o ajuste xlAutomatic:

Application.Calculation = xlAutomatic

Recomendo desativar os cálculos automáticos logo no início de seu procedimento e reativar os cálculos automáticos no final. Será assim:

Desativar Cálculos Automáticos Exemplo de Macro

Sub Exemplo_Calculo_Automatico()
    Application.Calculation = xlManual

    'Faça alguma coisa


    Application.Calculation = xlAutomatic
End Sub

Cálculo Manual

Quando os cálculos automáticos são desativados, você pode usar o comando Calculate para forçar o Excel a recalcular:

Calculate

Você também pode dizer ao Excel para recalcular apenas uma planilha individual:

Worksheets("Planilha1").Calculate

Você também pode dizer ao VBA para recalcular apenas um intervalo (clique para ler nosso artigo sobre métodos de cálculo VBA)

Eis como isto pode parecer dentro de uma macro:

Sub Exemplo_Calculo_Manual()
    Application.Calculation = xlManual

    'Faça alguma coisa

    'Recalcular
    Calculate
    
    'Faça mais coisas


    Application.Calculation = xlAutomatic
End Sub

Configurações VBA – Aceleração do Código

Se seu objetivo é acelerar seu código, você também deve considerar o ajuste dessas outras configurações:

A desativação do Screenupdating pode fazer uma enorme diferença na velocidade:

Application.ScreenUpdating = False

O desligamento da Barra de Status também fará uma pequena diferença:

Application.DisplayStatusBar = False

Se seu arquivo contém eventos, você também deve desativar eventos no início de seus procedimentos (para acelerar o código e para evitar loops infinitos!):

Application.EnableEvents = False

Por último, seu código VBA pode ser desacelerado quando o Excel tenta recalcular as quebras de página (Nota: nem todos os procedimentos serão impactados). Para desativar o DisplayPageBreaks, use esta linha de código:

ActiveSheet.DisplayPageBreaks = False

Codificação VBA facilitada

Pare de procurar por código VBA online. Saiba mais sobre AutoMacro – Um construtor de códigos VBA que permite aos iniciantes codificar procedimentos a partir do zero com o mínimo de conhecimento de codificação e com muitos recursos que economizam tempo para todos os usuários!

alt text

Saiba mais!

vba-free-addin

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA