Notifications
Clear all

Por quê ? Velocidade de Macro diminui...

3 Posts
3 Usuários
0 Reactions
882 Visualizações
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
Topic starter
 

Boa tarde pessoal.

    Dim xLin As Long
    Dim xUlt As Long
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    xUlt = Range("C" & Rows.Count).End(xlUp).Row
    For xLin = 1 To xUlt
        If UCase(Cells(xLin, "C")) = "X" Then
            Rows(xLin).Select
            Selection.EntireRow.Hidden = True
        End If
    Next
    Application.Calculation = xlCalculationAutomatic
    Range("E10").Select
    Application.ScreenUpdating = True

Alguém sabe informar por que quando eu abro o arquivo e executo a macro acima, o excel faz rapido (Parece o Flash)

Mas ao executar pela segunda vez, demora umas 1000x a mais.!!!!

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 30/11/2015 11:16 am
(@nelson-s)
Posts: 96
Trusted Member
 

Só por curiosidade... quando você executa a macro pela segunda vez as linhas que já foram ocultas da primeira vez continuam ocultas?

Ao rodar a macro pela segunda vez você está tentando ocultar linhas que já foram ocultas?

 
Postado : 30/11/2015 12:30 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

A observação do Nelson é valida e acredito que é o porque da execução mais lenta, e se apos executar a primeira vez, voce ainda lançar mais dados teremos mais linhas a verificar a condição "X".
Uma outra obs, seria quanto as linhas :

Rows(xLin).Select
Selection.EntireRow.Hidden = True

eu trocaria as duas por uma só, uma vez que não precisamos selecionar a linha para oculta-la, e com isto ganhamos um pouquinho mais de performance, então troque elas por esta:
Rows(xLin).EntireRow.Hidden = False

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 30/11/2015 6:56 pm