vba mais rápido

Apesar de cada pessoa ter sua lógica de desenvolvimento, por muitas vezes existem maneiras mais rápidas de desenvolvimento e também de deixar o código vba mais rápido de executar

As vezes o tempo de ler linha por linha e em cada linha copiar e colar em outra planilha é muito mais lento que ler todas as linhas gravar em uma matriz e depois colar todas as informações.

Entretanto nem sempre é possível alterar o código e é muito mais rápido efetuar alguns “truques” para deixar o código vba mais rápido.

Truques VBA Mais Rápido

 

“Congelar” tela

Já até fiz um post a respeito (Paralisar Tela), mas sempre vale a pena comentar, usando ScreenUpdating você “congela a tela” e com isso você ganha muito desempenho no excel. Isso porque o excel não precisa mostrar as movimentações de células.
Existe um ganho secundário que é o conforto pra quem está executando seu código, de não precisar ver sua tela “tremendo”.

Junto ao ScreenUpdate é muito interessante usar colocar uma tela de apresentação para seu cliente e também usar o StatusBar, que permite usar a barra de rodapé do excel com informações de % de execução.

______________________________________________________________

“Desabilitar fórmulas”

Essa é outra ótima opção pois as fórmulas ficam gravadas nas células, mas não apresentam os resultados ou as atualizações dos resultados.
E se o excel não precisa processar as fórmulas você ganha com desempenho. Principalmente quando você trabalha com vba e fórmulas junto.
É claro que no final de seu código você deve voltar ao padrão.

Para paralisar as fórmulas você de colocar o seguinte comando:
Application.Calculation = xlCalculationManual

Para voltar ao normal você altera somente o final para:
Application.Calculation = xlCalculationAutomatic

______________________________________________________________

“Desabilitar eventos de excel”

Sinceramente não vejo um ganho de desempenho da mesma forma que nas duas primeiras dicas, mas é não deixa de ser interessante você desativar alguns eventos do excel.

Exemplo:
Este exemplo desativa eventos antes de um arquivo ser salvo para que o evento BeforeSave não ocorra.

Application.EnableEvents = False      ‘(desativa)
ActiveWorkbook.Save
Application.EnableEvents = True     ‘(ativa novamente)

______________________________________________________________

“Desabilitar Alertas”

Não considero essa dica como ganho de desempenho no VBA, mas só o fato de o Excel não párar sua execução para mostrar telas de alerta já um ganho muito grande.

Exemplo de uso: para mostrar que o arquivo não está sendo salvo ou que irá sobrescrever algum outro arquivo.

Como eu já escrevi a respeito SEQUE AQUI o post publicado.