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


Clique aqui e leia mais sobre Excel VBA. https://www.guiadoexcel.com.br/vba/ O Guia do Excel foi criado por Marcos Rieper e oferece artigos, dicas, tutoriais e modelos de planilhas prontas. Aqui você encontra tudo sobre Excel, seja de nível básico, intermediário,  avançado e VBA. O Guia do Excel oferece diversos materiais completamente gratuitos para download. Navegue em nosso site e confira! Conheça também a nossa Loja do Excel https://loja.guiadoexcel.com.br/
Cursos

Curso Excel Completo – Curso Excel Básico + Curso Excel Avançado – Acesso Vitalício

R$218,00 R$179,00

COMPRAR
Cursos

Curso Excel Master – Curso Excel Básico + Curso Excel Avançado + Curso VBA Excel + LP – Acesso Vitalício

R$357,00 R$249,00

COMPRAR
Cursos

Curso Excel PRO – Curso Excel Avançado + Curso VBA Excel + Lógica de programação – Acesso Vitalício

R$258,00 R$199,00

COMPRAR
Cursos

Curso Excel Web – Curso VBA Excel + Lógica de programação + Curso Web Scraping VBA- Acesso Vitalício

R$388,90 R$309,00

COMPRAR

2 Comentários

  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.

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.