You are on page 1of 4

23/10/13

Visual Basic em Português: Excel: Dicas de VBA - Performance

Visual Basic em Português
Página pessoal de Jorge Paulino sobre o Visual Basic (VB.NET, ASP.NET, VB6, VBA) e algumas noticias de tecnologia
página inicial recursos aprendizagem lista artigos/noticias rss sobre ...

Excel: Dicas de VBA - Performance
27 Setembro 2009 Tags: M icrosoft Excel, VBA

Escola SaberExcel VBA
www.sabe re x ce l.com … C urso Ex ce l VBA Macros Vide o-Aulas 20.000 Planilhas Tre inam e ntos VBA

É 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, objectos, formatações, etc, o que pode tornar as acções mais lentas.

Mensagens Recentes
Existem no entanto pequenos “truques” que permitem melhorar reduzir o tempo de execução das macros e melhorar o aspecto visual quando estas correm. 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

Operador Like
Apr 04, 2013 Este poderá parecer um artigo bastante simples sobre Visual Basic e até é na verdade, mas a realidade é que muito programadores ou aspirantes a programadores de Visual Basic... Continue >>

Revista PROGRAMAR Edição 40 - Abril de 2013
Apr 04, 2013 (clica para download) Nesta edição continuaremos também a premiar os autores dos três melhores artigos, dado o sucesso nas edições anteriores. E os leitores devem dar a... Continue >>

M embro da Comunidade Experts-Exchange

Revista PROGRAMAR Edição 39 - Fevereiro de 2013
Jan 31, 2013 (clica para download) Nesta edição continuaremos também a premiar os autores dos três melhores artigos, dado o sucesso nas edições anteriores. E os leitores devem dar a... Continue >>

Administ. da Comunidade Portugal-a-Programar

Application.Calculation 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 aleatório - =Rand() -, sempre que escrevermos um valor numa célula, irão ser actualizadas todas as formulas. No seguinte exemplo será desabilitado enquanto o ciclo estiver a ser executado, e poderá testar com e sem o desabilitar dos cálculos automáticos, para ver a diferença.

SAP Crystal Reports já disponível para o Visual Studio 2012
Jan 15, 2013 Já estão disponíveis os Crystal Reports para o Visual Studio 2012, agora com a designação “SAP Crystal Reports, developer version for Microsoft Visual Studio – 2012”. Esta... Continue >>

1º Evento Presencial da Comunidade Questionário
Jan 06, 2013 A comunidade Portugal-aProgramar está a pensar em efectuar o primeiro evento presencial da comunidade. Trata-se de um evento de programação, em Português, que tem por... Continue >>

Tags
Access 2003 (1) ASP.NET

(11)

Ciclo (4) EF (2) Lambda (6)

Revista PROGRAMAR Edição 38 - Dezembro de 2012
Dec 04, 2012 (clica para download) Nesta edição continuaremos também a premiar os autores

Microsoft (34) Microsoft Excel (24) M icrosoft Reports
(10) NetPonto (5)
Office (1)

Noticias (47)

Parallel Extensions (4) Pessoal

(6) Revista PROGRAM AR (14)

www.jorgepaulino.com/2009/09/excel-dicas-de-vba-performance.html

1/4

na Ciclo. irá correr também o código anterior. por exemplo.. Continue >> Shell Let's Go youtube . E os leitores devem dar a. dado o sucesso nas edições anteriores. Private Sub Worksheet_Change(ByVal Target As Range) Dim x As Integer For x = 0 To 1000 Debug. Continue >> Subscrever Novidades Endereço de Email: Revista PROGRAMAR Edição Nº 35 Junho 2012 Jun 08.. 2012 (clica para download) Nesta edição continuaremos também a premiar os autores dos três melhores artigos. Imagine que no evento Change. a propriedade Application.Performance também a premiar os autores dos três melhores artigos. 2012 (clica para download) Nesta edição continuaremos também a premiar os autores dos três melhores artigos.Value = x Next Application. Continue >> (73) VB6 (8) VBA (28) Visual Studio 2005 (46) Visual Studio 2008 (30) Visual Studio 2010 (17) V isual Studio 2012 (1) XML Literals (4) Blogs/Páginas Amigos Caio Proiete (M VP ASP... todos os eventos ficaram congelados... temos um ciclo demorado.. Definindo esta propriedade como falsa. correndo-se o risco de a folha não trabalhar como está planeado.. Por defeito esta propriedade está definida como verdadeira (True) mas podemos desactivar quando queremos que os eventos não aconteçam.jorgepaulino. Esses eventos podem executar operações demoradas e isso pode não ser desejado..Calculation = xlCalculationManual For x = 1 To 100 Cells(x. fará com que apenas se execute o nosso código e não os restantes eventos do documento. dado o sucesso nas edições anteriores. Formação e Consultadoria.. Foram incluidos novos.Value = x Next Application. 2012 (clica para download) Nesta edição continuaremos também a premiar os autores dos três melhores artigos.EnableEvents Com explicado num artigo anterior. 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. dado o sucesso nas edições anteriores.Calculation = xlCalculationAutomatic Revista PROGRAMAR Edição 37 .23/10/13 Sub WriteValues() Dim x As Integer Visual Basic em Português: Excel: Dicas de VBA .. "g"). dado o sucesso nas edições anteriores. 2012 Foi actualizado o programa de formação para o curso de Programação Avançada em VBA para Microsoft Excel.NET Application. Continue >> 120 Segundos: Escola de Tecnologia Microsoft Jul 06. e garantir que são sempre repostas para as definições originais. Para breve mais dicas de como melhorar o código em VBA! Membros (79) Mais » Revista PROGRAMAR 34ª Edição Abril de 2012 Apr 17. 2012 (clica para download) Nesta edição continuaremos também a premiar os autores dos três melhores artigos. dado o sucesso nas edições anteriores. Continue >> Revista PROGRAMAR Edição Nº 36 Agosto 2012 Aug 10... 2012 A Microsoft lançou um projeto.EnableEvents = False e não voltarmos a colocar a True.html 2/4 ..NET) Niko Neugebauer (M VP SQL Server) Jorge Rodrigues (M VP Excel) Nuno Godinho (M VP ASP. E os leitores devem dar a.EnableEvents = True End Sub Programação Avançada em VBA para Microsoft Excel Sep 26. Se colocarmos. Application. "g"). E os leitores devem dar a. que pretende servir de ponto de encontro de vídeos que explicam de forma simples e rápida como se tira o melhor. Sub Run() Application. NOTA: é preciso ter algum cuidado com a utilização destas propriedades.Print(x) Next End Sub Com a opção Application.EnableEvents = False.NET) Pedro Perfeito (M VP SQL Server) Paulo M orgado (M VP C#) André Lage (M VP Sharepoint) Nuno M ota (M VP Exchange) Sara Silva (M VP C#) Luís Abreu (M VP ASP. existem diversos eventos que estão disponíveis no Excel.com /she ll Build a be tte r e ne rgy future Ge t starte d now on YouTube ! Já é membro? Iniciar sessão Página Úteis M SDN Portugal Visual Basic Team Blog ASP.EnableEvents = True. Continue >> Subscrever Delivered by FeedBurner Seguidores Aderir a este site. E os leitores devem dar. Continue >> SQL Server (5) VB.EnableEvents = False For x = 1 To 100 Cells(x. totalmente em Português.NET) Jorge M oura (M VP Desktop Experience) Sandro Pereira (M VP Biztalk) Fabio Domingos Excel User M aria do Céu Proiete (Office) End Sub Application. M icrosoft Excel Blog The Code Project CodePlex ScottGu's Blog www.Outubro de 2012 Oct 01.. com o Google Rede Social Isoladamente ou em conjunto.NET) Nuno Gomes (M VP ASP..com/2009/09/excel-dicas-de-vba-performance. que é executado sempre que algum valor seja alterado.NET Página Oficial 7 comentários: Pedro Costa disse. E os leitores devem dar a. sempre que escrever um valor em qualquer célula.

EnableEvents não conhecia.Statusbar = False para fazer o reset para defeito. e isso poderá reduzir bastante o tempo de execução.Statusbar é bastante bom. Já agora sou MetalFatigue do P@P. como o que mostras-te (Worsheet_Change).ScreenUpdating não tem só a utilidade de acelerar o processo como também de ser mais agradável ao utilizador.. >>>Ainda bem que tenho ajudado e para breve mais alguns artigos sobre VBA. infelizmente para mim. 12 Outubr o. Fica prometido! Um abraço Jorge Paulino 12 Outubr o. Fica prometido! Não prometas que eu até prefiro ..com/2009/09/excel-dicas-de-vba-performance. Bastante útil em processos muito demorados. Já me tens dado umas valentes ajudas em VBA :) Ainda bem que tenho ajudado e para breve mais alguns artigos sobre VBA.statusbar = "A processar registo " & actual & " de " & total Não esquecer de no final colocar: Application. Em conjunto com o Application. Exemplo: Application. 2009 www. mas de forma negligenciável). No entanto por razões profissionais sou obrigado a estar mais por dentro de VBA. Já me tens dado umas valentes ajudas em VBA :) Principalmente ao inicio quando eu era ainda um maçarico nisto.23/10/13 Visual Basic em Português: Excel: Dicas de VBA .html 3/4 ..jorgepaulino. 2009 Visual Basic 6 (VB6) Experts-Exchange (Fórum) Portugal-a-Programar (Fórum) Histórico Histórico jpaulino disse. 2009 Pedro Costa disse. possivelmente estranhas. O ganho é ilusório. Não falei no Application. Ou estarei enganado? o Application. Não há nada de mais frustrante que ter um processo demorado e não saber se bloqueou ou se ainda falta muito. O EnableEvents = False serve para que os eventos não "disparem"..StatusBar porque não está relacionado com performance. No entanto parece-me que a sua utilidade resume-se a quando temos código para eventos. a acontecerem rapidamente. Sim eu compreendi era só uma pequena dica.NET (C# ou VB). Cumprimentos 12 Outubr o. O tempo pode ser o mesmo mas psicologicamente parece mais.Statusbar pode até dar a ilusão de ser mais rápido se oferecer informações do que está a fazer ou do que falta ainda fazer.StatusBar porque não está relacionado com performance. Aliás apesar de não provocar qualquer tipo de melhoria de performance verdadeiramente (na verdade até pode tirar alguma. sem que este esteja a ver coisas. >> No entanto parece-me que a sua utilidade resume-se a quando temos código para eventos. como o que mostras-te (Worsheet_Change). >>Não falei no Application. Estamos sempre a aprender.Performance Ron's Excel Tips Developers Resource Center (VB6) The VB Programmer (VB6) o Application. Pois tal como disse não tem ganho real. >> Já agora sou MetalFatigue do P@P. o Application.

com/2009/09/excel-dicas-de-vba-performance. Pode dar mais detalhes? 14 Dezembr o.23/10/13 Anónimo disse.. Não entendi qual é o objectivo.luz. Full RSS .com www.Comments RSS vbtuga{at}gmail..html 4/4 . 2011 Anónimo disse. Visual Basic em Português: Excel: Dicas de VBA .. E a textbox está num userform? 16 Mar ço.. 2013 Jorge Paulino disse. Cadastre-se Agora! Mensagem mais recente Mensagem antiga 2009 Visual Basic em Português.vc/modelo-planilhas Planilhas de Excel Prontas com Vídeo Tutoriais... Alguém sabe como inserir um valor por defeito num textbox no vba excel? agradeço 16 Mar ço.jorgepaulino... Olá boa tarde. poderia apresentar uma pequena macro para uso de teste em célula formatada em vermelho? 10 Dezembr o. Using the StudioPress WordPress Theme Bloggerized by Girly Blogger for BTemplates. 2013 Enviar um comentário Planilhas Excel Prontas www. 2011 Jorge Paulino disse.Performance Pessoal. Olá.