Dicas para deixar a execução do VBA mais rápida e profissional

Como achar um valor aproximado Excel - Procv
Como achar um valor aproximado Excel – Procv
17 de janeiro de 2015
Statusbar VBA para indicar processamento
Statusbar VBA para indicar processamento
19 de janeiro de 2015

Objetivo: Dar dicas para deixar a execução do VBA Excel mais rápida e profissional.

Dicas para executar o VBA de forma mais rápida e profissionalAo longo do tempo de programação em VBA vamos nos deparando com situações que exigem muito processamento, o que causa muitas vezes processamento lento e telas piscando de forma incessante.

Neste artigo vamos ver algumas formas de tornar o código mais profissional e resolver alguns problemas que podem ocorrer nestas situações.

Desligar cálculo automático

Uma das primeiras dicas é desligar o cálculo automático quando iniciar o código VBA.

Muitas vezes existem fórmulas nas planilhas que estão sendo trabalhadas, e que durante a execução do código VBA elas vão sendo atualizadas automaticamente a cada iteração do código, o que faz com que o processo ocorra de forma mais lenta.

Para resolver este problema desligamos o cálculo automático ao início do processamento e ligamos novamente ao final, veja um exemplo:

Sub lsTeste()
  Application.Calculation = xlCalculationManual

  'Aqui seu código

  Application.Calculation = xlCalculationAutomatic
End sub

Desabilitar alertas do Excel

Um problema que ocorre muitas vezes é o Excel exibir os seus alertas durante a execução do código VBA, exemplo ao salvar como, ou iterações que questionam sobre a exclusão de um objeto, fazendo com que, muitas vezes, o usuário tenha que interagir desnecessariamente com o arquivo durante a execução.

Para resolver este problema utilize o código abaixo, atenção, pois é muito importante que ao final da execução seja ligado novamente, caso contrário o Excel não exibirá mais alertas.

Sub lsTeste()
  Application.DisplayAlerts = False

  'Aqui seu código

  Application.DisplayAlerts = True
End sub

Como evitar que a tela pisque durante a execução do código VBA

Esta dica além de tornar mais profissional o seu código, faz com que o processamento ocorra de forma muito mais rápida, dado que o sistema não precisará redesenhar a tela todas as vezes em que houver uma interação com uma planilha.

Para resolver este problema veja o exemplo abaixo, lembrando mais uma vez, é necessário ligar novamente ao final da execução.

Sub lsTeste()
  Application.ScreenUpdating = False

  'Aqui seu código

  Application.ScreenUpdating = True
End sub

Desabilitar eventos do Excel

Ás vezes programamos códigos que são executados á partir de eventos que ocorrem no Excel, por exemplo ao mudar de planilha, ou ao alterar dados, e nem sempre são desejados.

Neste caso podemos desabilitar os eventos do Excel, fazendo com que os mesmos não sejam chamados durante a execução de determinado código. Veja no exemplo do código, lembrando que sempre ao final é necessário ligar novamente.

Sub lsTeste()
  Application.EnableEvents = False

  'Aqui seu código

  Application.EnableEvents = True
End sub

Espero que este artigo tenha sido útil.

Abraço

Marcos Rieper

3 Comments

  1. Humberto Galvani disse:

    Gostaria de saber se existe alguma função no VBA que mostra uma mensagem por um tempo e não necessite digitar nada para que ela desapareça da tela como msgbox só que sem ter que digitar nada.

  2. JBSILVA disse:

    em que parte coloco estes codigos?
    area de trabalho, codigos form, ou em formularios?

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Inscreva-se no nosso canal do Youtube!


Junte-se ao nosso canal do Youtube. Começamos em abril de 2016, mas já temos mais de 06:00 h de treinamentos gratuitos e este número irá aumentar. Vídeos novos todos os sábados.