Notifications
Clear all

Processo Lento - Otimizar Função

3 Posts
1 Usuários
0 Reactions
735 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Pessoal,
Uso a função abaixo para Classificar em Ordem Alfabética, filtrando os dados exclusivos.
Funciona, mas tá muito lento. Será que dá pra otimizar?

'Classifica Com Filtro de Exclusivos

Sub ClassificaAtivosCarteira()
Planilha9.Unprotect 
Planilha9.Activate

With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
.DisplayAlerts = False
End With

Dim lin As Long
lin = 14 
Do While Not IsEmpty(Range("B" & lin)) And Not IsEmpty(Range("M" & lin))
    lin = lin + 1
    Range("DT14:DT1012").ClearContents
    Range("F14:F" & lin).Select
    Range("F13:F" & lin).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("DT13"), Unique:=True
    [DT13:DT1012].Sort Key1:=[DT13], Order1:=xlAscending
Loop
End Sub

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

 
Postado : 22/09/2017 7:29 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Sem testar, por motivos obvios
Experimente assim:

...
Dim lin As Long
lin = 14 
Do While Not IsEmpty(Range("B" & lin)) And Not IsEmpty(Range("M" & lin))
    lin = lin + 1
Loop
    Range("DT14:DT1012").ClearContents
    Range("F14:F" & lin).Select
    Range("F13:F" & lin).AdvancedFilter Action:=xlFilterCopy, CopyToRange:=Range("DT13"), Unique:=True
    [DT13:DT1012].Sort Key1:=[DT13], Order1:=xlAscending
End Sub

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

 
Postado : 22/09/2017 7:53 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Quem sabe, sabe.
Obrigado, Reinaldo!

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

 
Postado : 22/09/2017 8:08 am