Microsoft Office Excel :... Macros e VBA
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Macro mais rápida ! É possível?

Ir para baixo

Macro mais rápida ! É possível? Empty Macro mais rápida ! É possível?

Mensagem  KDU Dom Fev 05, 2017 9:31 am

Olá pessoal, hoje vamos falar de alguns processo que podem agregar suas macros para deixá-las mais rápidas.

Antes de começar, vamos dizer que estes procedimentos não faz milagre. Seu projeto em si tem que ser bem estruturado.
Digamos que você fez uma macro que lê linha por linha, mais são 500.000 mil registros, neste caso não tem milagre, vai demorar um pouco mesmo.

Mais tem alguns procedimentos simples, como copiar e colar, inserir registros, fazer um formulário, fazer uma varredura, fazer um sistema de pesquisa que pode impactar o desempenho da macro.

Vamos detalhar alguns procedimentos,

1) Desabilita atualização de tela

Este código faz com que o Excel não fique atualizando a tela mostrando toda a movimentação que acontece. Assim é menos recurso para o computador processar.

Código:
Application.ScreenUpdating = False ' para você desabilitar e no final da macro coloque True para habilitar novamente.

2) Modo de cálculo manual

Sem dúvidas o mais utilizado em planilhas que utilizam fórmulas. Durante a execução da macro este código habilita o código manual e nenhum campo calculado será processado.
No final você habilita o processo e tudo será calculado.

Código:
Application.Calculation = xlCalculationManual  'Desativa modo automático de cálculo
'E no final não esqueça de habilitar
Application.Calculation = xlCalculationAutomatic  'Habilita modo automático de cálculo

3) Evite usar a área de transferência do excel

Durante o procedimento de colar e copiar alguns utilizam códigos que faz com que a área de transferência seja utilizada.

Código:
Range("A1:A200").Copy
Range("B1").PasteSpecial
Application.CutCopyMode = False 'Limpa a área de transferência

Sempre que possível utilize o código para ganhar tempo;

Código:
Range("A1:A200").Copy Destination:= Range("B1")

4) Desabilitar eventos do Excel

Alguns códigos são executados á partir de eventos que ocorrem no Excel, por exemplo ao mudar de planilha ou ao alterar dados. o Código abaixo desabilita estes eventos.

Código:
Application.EnableEvents = False 'Para desabilitar
Application.EnableEvents = True  'Para habilitar

5) Desabilitar alertas do Excel

Quem nunca se deparou com alguns pop ups de confirmação no excel. O código abaixo desabilita esta opção, fazendo com que a macro não pare  e espere pelo seu OK.

Código:
Application.DisplayAlerts = False ' Para desabilitar
Application.DisplayAlerts = False  'Para habilitar

Bom pessoal é isto. Dependendo do código que você está escrevendo, você pode colocar todas estas dicas em práticas dentro do mesmo procedimento.

Só não esqueça de Habilitá-los no final. Alguns procedimentos vão com a planilha e pode complicar a vida de quem abre esta planilha
Exemplo disto é o comando que coloca o excel em cálculo manual e esquece de habilitar. O próximo que abrir a planilha fara o Excel ficar em cálculo manual.


Valeu e até a próxima.
KDU
KDU
Admin

Mensagens : 26
Data de inscrição : 17/08/2011
Idade : 43

https://excel.forumeiros.com

Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos