Anda di halaman 1dari 8

10/11/2016 Dicas de VBA – Performance ­ Pplware

    

Apple
 Pesquisar 
Linux
Android
Windows
Análises
Smartphones
Kids
Usados

 Pesquisar

HOME > DICAS DE VBA – PERFORMANCE

Dicas de VBA –
Performance
PAULO SILVA · 14 DEZ 2011 · TUTORIAIS
5 COMENTÁRIOS

Por Jorge Paulino para o Pplware!

É muito importante quando se


desenvolve alguma macro, que o tempo
de execução não seja exagerado, e até
porque, as folhas de calculo têm
normalmente diversos cálculos, BLOGS DO ANO

objectos, formatações, etc, o que pode


tornar as acções mais lentas.

Existem no entanto pequenos “truques”


que permitem melhorar reduzir o tempo
de execução das macros e melhorar o
aspecto visual quando estas correm.

https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 1/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

PARCEIROS EM DESTAQUE

Application.ScreenUpdating

Esta propriedade define se o Excel


actualiza ou não a folha de cálculo. Por
defeito está definida como verdadeira
(True), mas podemos
defini-la como falsa (False).

Por exemplo, se queremos apagar


algumas linhas ou colunas
individualmente, sempre que damos
uma ordem para eliminar, a folha é
actualizada, aumentando o tempo de
execução. Se definirmos
Application.ScreenUpdating = False, só
quando voltarmos a definir
Application.ScreenUpdating = True, é
que a folha é actualizada, reduzindo
significativamente o tempo de execução
e o aspecto geral da macro.

No seguinte exemplo, só após o código


terminar, a folha será actualizada:

Sub DeleteColumns() 

       Application.ScreenUpdating = False 

        Range(“c:c”).Delete 

        Range(“b:b”).Delete 

        Range(“a:a”).Delete 

      Application.ScreenUpdating = True


    End Sub

Application.Calculation
https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 2/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

A propriedade Calculation permite


definir de que forma são feitos os
cálculos. Sempre que escrevemos um
valor numa célula, o Excel actualiza
todos os cálculos, em todas as células, o
que poderá levar algum tempo. Por
defeito esta propriedade está definida
como automática
(xlCalculationAutomatic) mas podemos
no entanto definir para não ser
executada, ou seja, para manual
(xlCalculationManual).

Por exemplo, e para testarmos esta


opção, se tivermos na colunas A, B, C, D,
E e F todas as células com uma formula
para gerar um número ÚLTIMAS ANÁLISES PPLWARE
aleatório =Rand() , sempre que
escrevermos um valor numa célula, irão T18 Tracker Kid 7.8
ser actualizadas todas as formulas. No
seguinte exemplo será desabilitado
enquanto o ciclo estiver a ser executado, Battlefield 1 8.9
e poderá testar com e sem o desabilitar
dos cálculos automáticos, para ver a
diferença. Xiaomi Mi Notebook Air 12 9.2

Sub WriteValues()
Tomb Raider: 20th Year Anniv... 9.1
        Dim x As Integer

        Application.Calculation =
xlCalculationManual
NEWSLETTER PPLWARE
        For x = 1 To 100

            Cells(x, “g”).Value= x

        Next

        Application.Calculation =
xlCalculationAutomatic

    End Sub SONDAGENS



Poderá a presidência de Trump afectar o mundo
Application.EnableEvents
da Tecnologia?

https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 3/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

Com explicado num artigo anterior, Poderá melhorar algumas coisas mas
existem diversos eventos que estão também piorar outras.
disponíveis no Excel. Esses eventos Sim, acredito que afecte, mas para melhor.
podem executar operações demoradas e Não acredito que afecte.
isso pode não ser desejado. Por defeito Sim, acredito que irá afectar, e para pior.
esta propriedade está definida como
Votar
verdadeira (True) mas podemos
desactivar quando queremos que os Arquivo
eventos não aconteçam.

Imagine que no evento Change, que é PARCEIROS


executado sempre que algum valor seja
alterado, temos um ciclo demorado.

Private Sub Worksheet_Change(ByVal


Target As Range)

        Dim x As Integer

        For x = 0 To 1000

            Debug.Print(x)

        Next

    End Sub

Com a opção Application.EnableEvents =


True, sempre que escrever um valor em
qualquer célula, irá correr também o
código anterior.

Definindo esta propriedade como falsa,


Application.EnableEvents = False, fará
com que apenas se execute o nosso
código
e não os restantes eventos do
documento.

Sub Run()

        Dim x As Integer

        Application.EnableEvents = False 

        For x = 1 To 100

            Cells(x, “g”).Value = x


https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 4/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

        Next

        Application.EnableEvents = True

    End Sub

Isoladamente ou em conjunto, estas três


propriedades permitem melhorar
significativamente o tempo de execução
de uma macro e com isso tornar a nossa
folha de cálculo mais atractiva.

NOTA: é preciso ter algum cuidado com a


utilização destas propriedades, e garantir
que são sempre repostas para as
definições originais, correndo-se o risco
de a folha não trabalhar como está
planeado. Se colocarmos, por exemplo, a
propriedade Application.EnableEvents =
False e não voltarmos a colocar a True,
todos os eventos ficaram congelados.

Para breve mais dicas de como melhorar


o código em VBA!

Escrito por: Jorge Paulino

Página Autor:
http://www.jorgepaulino.com

Por Jorge Paulino para


Pplware.com PPLWARE KIDS

Ténis Nike que se atam sozinhos, são vendidos


por 94 mil euros
9 DE NOVEMBRO DE 2016

Proponha uma correcção, faça uma sugestão NASA: Em caso de apocalipse a Terra tem aviso
5 dias antes
6 DE NOVEMBRO DE 2016

Não deite as latas de Pringles fora, faça uma



bateria!
4 DE NOVEMBRO DE 2016

https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 5/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

ARTIGO PRÓXIMO 20 invenções que mudaram o mundo


1 DE NOVEMBRO DE 2016
ANTERIOR ARTIGO

Lion Tardes de

Será este o futuro das escadas?
Secrets – Cinema
 28 DE OUTUBRO DE 2016
Os
segredos
do Lion a
 PPLWARE TV
nu

 DESTAQUES PPLWARE

16 8 22

Segurança Tem um Análise Unboxing: Huawei Mate 9


– Quero Raspberry forense:

 
vender o Pi 3? Vamos
meu Saiba saber o
iPhone, o como que o seu
que devo transform smartpho airstream explainer AllCast

fazer? á-lo num ne sabe


AP Wi᫘� de si
31 OUT,
ÚLTIMAS DO FÓRUM :
2016 11 JUL, 7 JUN, 2016
2016 Backup DVD / Blu-RAY
10 DE NOVEMBRO DE 2016

Como fazer USB Mac OS SIERRA


5 RESPOSTAS 10 DE NOVEMBRO DE 2016

 Comentários 5 Plex Media Server - Como Configurar


 Pingbacks 0 10 DE NOVEMBRO DE 2016

Como partilhar o ecrã do computador e do


Pedro A.
smartphone a tv
 14 de Dezembro de 2011 às 17:53
9 DE NOVEMBRO DE 2016
Interessante, apenas conhecia a 1ª.
No entanto é interessante o tempo
de execução das macros entre o Reencaminhamento sms ipad
Excel 2003 e 2007 (não testei na 9 DE NOVEMBRO DE 2016 
versão 2010). O Excel 2003 é MUITO
mais rápido a executar o mesmo
código… CATEGORIAS
Responder
https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 6/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

Responder
Seleccionar categoria

António Morgado
 14 de Dezembro de 2011 às 18:08
Muito obrigado Caro Jorge Paulino ARQUIVO

Melhorou o meu dia Seleccionar mês


Abraço.
Responder

A. Sousa
 14 de Dezembro de 2011 às 23:27
Bom artigo … simples mas muito
útil!
Responder

Bruno
 15 de Dezembro de 2011 às 10:27
Aqui aprende-se muito.

Obrigado
Responder

Clayton
 14 de Fevereiro de 2012 às 10:49
Meus parabéns excelente artigo
Responder

DEIXAR UMA RESPOSTA

Comentário

Nome * Email *

Publicar comentário

Notifique-me de comentários seguintes


por e-mail.

https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 7/8
10/11/2016 Dicas de VBA – Performance ­ Pplware

Aviso: Todo e qualquer texto publicado


na internet através deste sistema não
reflete, necessariamente, a opinião
deste site ou do(s) seu(s) autor(es). Os
comentários publicados através deste
sistema são de exclusiva e integral
responsabilidade e autoria dos leitores
que dele fizerem uso. A administração
deste site reserva-se, desde já, no
direito de excluir comentários e textos
que julgar ofensivos, difamatórios,
caluniosos, preconceituosos ou de
alguma forma prejudiciais a terceiros.
Textos de caráter promocional ou
inseridos no sistema sem a devida
identificação do seu autor (nome
completo e endereço válido de email)
também poderão ser excluídos.

INSTITUCIONAL CANAIS PPLWARE UTILIDADES RUBRICAS MENU

Sobre nós Fórum Pplware Análises Porque hoje é Notícias


Contacto Usados Pplware Android sexta Apple
Press Kit Pplware Kids iPhone Pplware Linux
A Equipa Empresas Hoje Questionários Classics… Análises
Regras de PiPplware Windows Phone Consultório Google/YouTube
Utilização Newsletter Pack Raspberry Pi Passatempos Windows
Privacidade Grupos Facebook Pplware Sondagens
Política de Apps dos nossos
Cookies leitores

© Copyright Pplware.com 2005-     


2016. Todos os direitos reservados.

RKETING CERTIFIED BY:

https://pplware.sapo.pt/tutoriais/dicas­de­vba­%E2%80%93­performance/ 8/8