Notifications
Clear all

Otimizar Tempo de execução de Macro

8 Posts
4 Usuários
0 Reactions
1,846 Visualizações
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Bom dia Senhores,
Estou com um relatório que está me tirando o sono...e estou postergando pra otimizar ele e acho que chegou a ora...rsrsrsrs

Tenho um relatório que exporta uns 300 PDF's mais ou menos...ele começa no gás total porém, depois de algumas exportações ele começa a ficar mais lento entre uma exportação e outra. Isso imagino por causa da quantidade de variáveis utilizadas e ficam acumulando espaço na memória e processamento ( eu acho!! ).

Poderiam sugerir algumas boas práticas para otimizar esse gerenciamento de memória...???

Limpar variáveis...etc....

vlwww e bom final de ano para todos!!!

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

 
Postado : 30/12/2014 7:58 am
(@edcronos)
Posts: 1006
Noble Member
 

dicas de melhorar performance tem muitas, mas cada caso é um caso

variaveis tem seus valores sobrescritos
a não ser que vc tenha centenas de variaveis na mesma macro e vá adicionando dados uma apois a outra sem reaproveitamento

como vc faz exportação pode ser a parte de criação de pdf que fica sujando a memoria ou fique acumulando instâncias "nunca fiz exportação para pdf"

leitura em uma planilha normalmente é mais rapida
escrita se tiver formulas formatações é mais lenta por causa das regras de dependência "pelo menos foi isso que percebi"

vc pode abrir o gerenciador de tarefas do windows e ver se o uso de memoria vai subindo e qual processo que está fazendo maior uso de memoria ou de processamento

é so minha opinião, fora isso creio que para o pessoal poder te ajudar somente visualizando o codigo

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 30/12/2014 9:02 am
(@hugomoreda)
Posts: 34
Eminent Member
 

Congelar a tela da macro otimiza bem o tempo. Coloque esse código logo apos os "Dims"

Application.ScreenUpdating = False ' Congela a tela'

Este abaixo antes do end sub, ou próximo.

Application.ScreenUpdating = Fals ' DesCongela a tela'

Abs!

 
Postado : 30/12/2014 2:55 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Hugo,
Esse congelar a tela não conhecia...vou fazer alguns testes e ver se ajuda!

Apenas para contextualizar segue meu código para analise! Apesar do tamanho do código não tem segredo, apenas varre uma lista com parâmetros que trocam centena de vezes os valores de filtros nas tabelas dinâmicas de cada planilha e exposta PDF ao final.

Se alguém tiver alguma sugestão é sempre bem vinda!

Sub varrelista()
Plan5.Select
Dim lin, col As Long
Dim dealer, regional, regiao, regiao_geo As String
Dim segmento As String
Dim ano, mes As String
Dim subs1, subs2, subs3, subs4 As String
Dim area As String
Dim carop As String
lin = 10
col = 8
ano = Plan5.Range("h6").Value
mes = Plan5.Range("h7").Value
segmento = Plan5.Range("h5").Value
segm = Plan5.Range("h5").Value
ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SEGMENTO").CurrentPage = segmento
ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
subs1 = Plan5.Range("O10").Value
subs2 = Plan5.Range("O11").Value
subs3 = Plan5.Range("O12").Value
subs4 = Plan5.Range("O13").Value
SetaPeríodos ano, mes
SetaSegmento segmento
SetaSubSegmentoRanking subs1, subs2, subs3, subs4, segmento
While Plan5.Cells(lin, col).Value <> ""
dealer = Plan5.Cells(lin, 8).Value
regional = Plan5.Cells(lin, 9).Value
aop = "(Tudo)"
carop = Plan5.Cells(lin, 7).Value
regiao_geo = Plan5.Cells(lin, col + 3).Value
trocaFiltros dealer, regional, aop, regiao_geo
Plan1.Select
area = dealer
exportaPDF segmento, carop
lin = lin + 1
Wend
End Sub
Sub trocaFiltros(delaer, regional, aop, regiao_geo As String)
  
    Sheets("VarreLista").Select
    ActiveSheet.PivotTables("Tabela dinâmica11").PivotFields("REGIAO_MBB").CurrentPage = regional


    Sheets("Graficos").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo

    
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo

    
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo

    
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo


    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo

    
    Sheets("Evolutivos").Select
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    
    Sheets("Ranking").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("DEALER_AOP").CurrentPage = delaer
    
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("DEALER_AOP").CurrentPage = delaer
      
    Sheets("Tabelas_resumo").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
   ' ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("REGIAO_MBB").CurrentPage = regional
    'ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
   ' ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
   ' ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("DEALER_AOP").CurrentPage = delaer
   ' ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("REGIAO_MBB").CurrentPage = regiao
   'ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
'    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
    ' ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("DEALER_AOP").CurrentPage = delaer
    ' ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_MBB").CurrentPage = regiao
    'ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    ' ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_MBB").CurrentPage = regional
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
    'ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
   ' ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("DEALER_AOP").CurrentPage = delaer
    ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("REGIAO_MBB").CurrentPage = regional
    'ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
   ' ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo
    
   ' ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("DEALER_AOP").CurrentPage = delaer
   ' ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("REGIAO_MBB").CurrentPage = regiao
   'ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("AREA_OPERACIONAL").CurrentPage = aop
'    ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("REGIAO_GEOGRAFICA").CurrentPage = regiao_geo

Sheets("Ranking_Dealer_REGIONAL").Select
        ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("REGIAO_MBB").CurrentPage = regional
        ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("REGIAO_MBB").CurrentPage = regional
        ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("REGIAO_MBB").CurrentPage = regional
        ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("REGIAO_MBB").CurrentPage = regional
        ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("REGIAO_MBB").CurrentPage = regional
        
End Sub
Sub SetaPeríodos(ano, mes As String)
    
    Sheets("VarreLista").Select
    ActiveSheet.PivotTables("Tabela dinâmica11").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    
    Sheets("Graficos").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MES_EMPLACAMENTO").CurrentPage = mes

    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano

    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("MES_EMPLACAMENTO").CurrentPage = mes
    
    Sheets("Evolutivos").Select
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano

    
    Sheets("Ranking").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica9").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica10").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
      
    Sheets("Tabelas_resumo").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("MES_EMPLACAMENTO").CurrentPage = mes
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("MES_EMPLACAMENTO").CurrentPage = mes
'    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
'    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("MES_EMPLACAMENTO").CurrentPage = mes
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("MES_EMPLACAMENTO").CurrentPage = mes
    
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
'    ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
End Sub
Sub SetaSegmento(segmento As String)

    Sheets("ClassificaAOP").Select
    ActiveSheet.PivotTables("Tabela dinâmica14").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("SEGMENTO").CurrentPage = segmento
    
    Sheets("GeraTabelaAOP").Select
    Range("A4").Select
    ActiveSheet.AutoFilter.ApplyFilter
        
    Sheets("VarreLista").Select
    ActiveSheet.PivotTables("Tabela dinâmica11").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica12").PivotFields("SEGMENTO").CurrentPage = segmento
    
    Sheets("Graficos").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("SEGMENTO").CurrentPage = segmento


   
    Sheets("Evolutivos").Select
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SEGMENTO").CurrentPage = segmento

    
    Sheets("Ranking").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica9").PivotFields("SEGMENTO").CurrentPage = segmento
    ActiveSheet.PivotTables("Tabela dinâmica10").PivotFields("SEGMENTO").CurrentPage = segmento
      
         Sheets("Tabelas_resumo").Select
    
        ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("SEGMENTO").CurrentPage = segmento
        
        Sheets("Ranking_Dealer_REGIONAL").Select
        ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SEGMENTO").CurrentPage = segmento
         ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("SEGMENTO").CurrentPage = segmento
        
        Sheets("Ranking_Dealer_NACIONAL").Select
        ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SEGMENTO").CurrentPage = segmento
        ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("SEGMENTO").CurrentPage = segmento
        
End Sub
Sub SetaSubSegmentoRanking(subs1, subs2, subs3, subs4, segmento As String)

 Sheets("Ranking").Select
 ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SUBSEGMENTO").CurrentPage = subs1
 ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SUBSEGMENTO").CurrentPage = subs2
 ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SUBSEGMENTO").CurrentPage = subs3
 If segmento = "3.0-VANS" Then
 ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SUBSEGMENTO").CurrentPage = "(Tudo)"
  Else
 ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SUBSEGMENTO").CurrentPage = subs4
 End If
    
ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("SUBSEGMENTO").CurrentPage = "(Tudo)"
 
ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("SUBSEGMENTO").CurrentPage = subs1
 ActiveSheet.PivotTables("Tabela dinâmica10").PivotFields("SUBSEGMENTO").CurrentPage = subs2
 ActiveSheet.PivotTables("Tabela dinâmica9").PivotFields("SUBSEGMENTO").CurrentPage = subs3
 If segmento = "3.0-VANS" Then
 ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("SUBSEGMENTO").CurrentPage = "(Tudo)"
 Else
 ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("SUBSEGMENTO").CurrentPage = subs4
 End If
 ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("SUBSEGMENTO").CurrentPage = "(Tudo)"
 
 Sheets("Ranking_Dealer_REGIONAL").Select
 ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SUBSEGMENTO").CurrentPage = subs1
 ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SUBSEGMENTO").CurrentPage = subs2
 ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SUBSEGMENTO").CurrentPage = subs3
 If segmento = "3.0-VANS" Then
 ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SUBSEGMENTO").CurrentPage = "(Tudo)"
  Else
 ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SUBSEGMENTO").CurrentPage = subs4
 End If
 
 Sheets("Ranking_Dealer_NACIONAL").Select
 ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("SUBSEGMENTO").CurrentPage = subs1
 ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("SUBSEGMENTO").CurrentPage = subs2
 ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("SUBSEGMENTO").CurrentPage = subs3
 If segmento = "3.0-VANS" Then
 ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SUBSEGMENTO").CurrentPage = "(Tudo)"
 Else
 ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("SUBSEGMENTO").CurrentPage = subs4
 End If

End Sub
Public Sub exportaPDF(segm, carop As String)
    
    Dim nomePadrao As String
    nomePadrao = "Boletim Area-" & carop & " Segm-" & segm & ".pdf"
    
    Dim endereco As String
    Dim nomePasta As String
    nomePasta = Plan1.Range("CI2").Value
    endereco = "CAMINHO" & segm
    MkDir endereco & "" & nomePasta
     
    Range("A1:AH56").Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        endereco & "" & nomePasta & nomePadrao, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
End Sub

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

 
Postado : 31/12/2014 5:17 am
sandroh
(@sandroh)
Posts: 40
Eminent Member
 

Tenta o seguinte,
Cria um módulo novo e coloca o código:
Declare Sub Sleep Lib "kernel32" _
(ByVal dwMilliseconds As Long)

Depois, na macro, chama como se fosse uma função onde você quiser parar a execução.
Ex: Sleep 1000 'Para a execução durante um segundo.

Caso tenha resolvido, não esqueça de clicar na mãozinha ao lado da ferramenta "citar" e fechar o tópico ;)

 
Postado : 31/12/2014 5:46 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

sandroh
Só não entendi como esse módulo que você sugeriu otimizaria o meu código? Isso é para pausar a execução correto?

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

 
Postado : 31/12/2014 5:55 am
(@edcronos)
Posts: 1006
Noble Member
 

pode tentar isso...

Sub Inicio()

    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual

End Sub

Sub Final()
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUpdating = True
End Sub

e em cada macro colocar

Sub macro()
Inicio
...
linhas de codigo...
...
Final
End Sub

e para deixar o codigo mais limpo

em vez de usar

   Sheets("Ranking").Select
    ActiveSheet.PivotTables("Tabela dinâmica1").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica2").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica3").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica4").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica5").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica6").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica7").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica8").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica9").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
    ActiveSheet.PivotTables("Tabela dinâmica10").PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano

pode tentar usar

tabe="Tabela dinâmica"

With Sheets("Ranking")
for t=1 to 10
.PivotTables( tabe & t ).PivotFields("ANO_EMPLACAMENTO").CurrentPage = ano
next
end with

tem mais coisas mas teria que fazer testes

e em vez de usar "nome isso" "nome aquilo"
pode tentar usar variaveis

TabDin="Tabela dinâmica"

PivotTables(TabDin & 1)
PivotTables(TabDin & 2)

mas tem que prestar atenção nos espaços

Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.

"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"

 
Postado : 31/12/2014 7:15 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa Edcronos !!

Vou tentar esses ajustes e ver calcular o tempo de resposta!

Só fiquei com dúvida em relação ao FOR para setar os valores da tabela dinâmica, as vezes não necessariamente é sequencial as tabela...caso o for tente setar uma tabela inexistente vai dar erro.....mas só tratar esse erro e resolve!

vlw pelas dicas

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

 
Postado : 31/12/2014 8:51 am