Pular para o conteúdo

7 Dicas para deixar a macro mais rápida

7 Dicas para deixar a macro mais rápida

Atualização:  Se essas dicas não são o suficiente, clique aqui e conheça mais outras 9.

Para a versão inglês deste post, acesse este link.

Essa é para você que já está acostumado com a utilização das Macros em suas planilhas mas percebe que elas poderiam rodar um pouquinho mais rápido.

Vou mostrar uma série de códigos e dicas bastante simples que podem te ajudar a ganhar ainda mais tempo com suas planilhas automatizadas. Vamos a elas.

Se estiver com preguiça de ler, assista ao vídeo, caso contrário, continua mais abaixo.


1 – Desabilitando a atualização da tela

Este código faz com que o Excel não fique atualizando a tela mostrando toda a movimentação de escrever fórmulas, mover em planilhas, ou qualquer coisa que sua macro faça. Isso faz com que o computador não precise gastar tempo nem recurso atualizando a imagem a ser exibida na tela.

Application.ScreenUpdating = False 'Desabilita atualização de tela

'Seu código aqui

Application.ScreenUpdating = True 'Habilita atualização de tela

2 – Modo de cálculo manual

Por padrão o Excel utiliza o modo de cálculo automático, o que significa que sempre que você altera o conteúdo de qualquer célula ele recalcula todas as outras de todas as abas de seu arquivo, e quanto mais fórmulas houverem, mais demorado vai ser.

Uma forma de acelerar sua Macro é desabilitar o modo de cálculo automático, e só habilitar quando for necessário recalcular alguma coisa na planilha.

Application.Calculation = xlManual 'Desativa modo automático de cálculo

'Seu código aqui

Application.Calculation = xlAutomatic 'Ativa modo automático de cálculo

3 – Atualizar somente a planilha (aba) atual

Esta pode ser combinada com a anterior, e só faz sentido se sua pasta de trabalho tiver mais de uma planilha (aba).

O que ela faz é atualizar somente a planilha que está ativa, e não enquanto no modo de cálculo automático atualiza todas as fórmulas de todas as planilhas, com este código você atualiza somente a que estiver ativa no momento.

ActiveSheet.Calculate 'Calcula somente as fórmulas da aba ativa

4 – Evite usar a área de transferência

Quando utilizamos as funções de copiar e colar forçamos o computador a guardar em sua memória rápida os dados que copiamos. Para acelerar, e não utilizar essa memória do computador você pode usar os código abaixo.

Copiando e colando normalmente

Ao invés de utilizar algo do tipo:

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

Utilize algo como:

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

Copiando e colando valores

Ao invés de utilizar:

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

Busque utilizar:

Range("B1:B200").Value = Range("A1:A200").Value

Copiando e colando fórmulas

Ao invés de usar algo como:

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

Utilize:

Range("B1:B200").Formula = Range("A1:A200").Formula

5 – Inserir fórmula em várias células ao mesmo tempo

É provável que você tenha células com a mesma fórmula, normalmente em casos que você escreve a fórmula e depois arrasta ou copia para as outras células que serão iguais.

Utilizar o código anterior já acelera, a cópia, mas existe um jeito mais rápido, veja.

Ao invés de usar algo como:

Range("A1").FormulaR1C1 = "=SUM(RC[1]:RC[5])" 'Escreve fórmula na célula A1
Range("A1").Copy
Range("A1:A20").PasteSpecial xlPasteFormulas 'Copia a fórmula de A1 até A20
Application.CutCopyMode = False 'Limpa a área de transferência

Tente usar:

Range("A1:A20").FormulaR1C1 = "=SUM(RC[1]:RC[5])" 'Escreve fórmula da célula A1 a A20

6 – Evite usar .select

Toda vez que aparece em seu código algo como:

Range("A1").Select

O Excel irá selecionar aquela célula da mesma forma que você faria com o mouse, o que é desnecessário pois leva tempo de processamento fazer isso, e você pode escrever praticamente tudo em sua macro sem utilizar o .select.

Se for necessário selecionar alguma célula, objeto, planilha, pasta de trabalho, faça assim:

Range("A1").Activate

Você conseguirá fazer praticamente as mesmas coisas que faria usando outro método, só que mais rápido.


7 – Limpe seu código

Se você monta boa parte de suas macros utilizando o gravador de macros uma boa prática é abrir e analisar o código recém escrito.

O gravador escreve tudo que você faz, inclusive aquelas partes desnecessárias, como mover a barra de rolagem, selecionar uma célula qualquer por acidente, ou qualquer outra coisa que você faça enquanto está gravando a macro que não tem nada a ver com o que você quer fazer de fato.

Ao analisar o código recém criado você também perceberá que poderá melhorar seu código utilizando as ouras dicas descritas aqui, substituindo alguns trechos e apagando outros.

Atualização:  Se essas dicas não são o suficiente, clique aqui e conheça mais outras 9.


Acompanhe o Função Excel
facebook-logo youtube-logo googleplus-logo twitter-logo

6 comentários em “7 Dicas para deixar a macro mais rápida”

  1. LUCAS DE SOUZA MEDRI

    Muito bom o seu vídeo, o vi diversas vezes ao longo do ultimo 1 ano e meio e utilizei nas minhas planilhas.
    Como seria esta cópia rápida por VBA porém somente para formatos?

  2. Rodrigo, fenomenal as suas dicas. Parabens. Eu nao consegui dar o *like*. Quando puder me avisa como fazer. Forte Abraço.

Deixe um comentário ou uma dúvida