Notifications
Clear all

Rotina Gravar em PDF com Barra de Progresso

5 Posts
3 Usuários
0 Reactions
1,187 Visualizações
(@jlvfranca)
Posts: 20
Eminent Member
Topic starter
 

Prezados, Feliz 2016.

Tenho uma rotina que grava planilha em PDF, que encontrei no fórum, e adaptei as minhas necessidades.
Agora estou tentando adaptar a essa mesma rotina, outra de Barra de Progresso.
Porém após adaptar esta nova rotina (Barra de Progresso), o processo ficou muito lento.
Fiz alguma coisa errada, mas como não sou um expert em VBA venho pedir ajuda, no sentido de melhorarem os códigos existente na mesma.

Estou anexando a planilha, para um melhor entendimento. A rotina está no módulo 1, onde estou fazendo os testes.

Agradeço antecipadamente,

 
Postado : 07/01/2016 7:55 am
(@edivan)
Posts: 119
Estimable Member
 

Boa tarde!

Só uma dúvida seu código está salvando um arquivo para cada linha parece é isso mesmo que você quer?

 
Postado : 07/01/2016 8:45 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Experimente utilizar sua rotina assim:

Sub BarraDeProgresso()
Dim Wmap As Worksheet
Dim Arq As String
Dim i               As Long
Dim iUltimaLinha    As Long
Dim iPercentualConcluido As Double
    
    Application.ScreenUpdating = False
    
'   iUltimaLinha = Sheets("Dados").Range("A" & Rows.Count).End(xlUp).Row
    iUltimaLinha = Sheets("Dados").Range("A1").End(xlDown).Row
Set Wmap = Sheets("Relatorio")
    
    frmBarraDeProgresso.Show False
    
    For i = 2 To iUltimaLinha
        iPercentualConcluido = i / iUltimaLinha
        With frmBarraDeProgresso
            .framePb.Caption = Format(iPercentualConcluido, "0%") & " Concluído"
            .progressBar.Width = iPercentualConcluido * (.framePb.Width - 10)
        End With
        
        DoEvents    'Permite que sejam visualizadas as mudanças nos controles do formulário
        
        'Call GravarPDF
        Wmap.Range("U11").Value = Sheets("Dados").Cells(i, 1)
        Arq = Format(Range("B16").Value) & "_" & Format(Range("B11").Value)
        Wmap.ExportAsFixedFormat Type:=xlTypePDF, _
                                    Filename:=ActiveWorkbook.Path & "" & Arq & ".pdf", _
                                    Quality:=xlQualityMinimum, _
                                    IncludeDocProperties:=True, _
                                    IgnorePrintAreas:=False, _
                                    OpenAfterPublish:=False
    Next
    
    Unload frmBarraDeProgresso
    
    MsgBox "Cálculos efetuados com sucesso.", vbInformation, "ATENÇÃO"

End Sub

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

 
Postado : 07/01/2016 9:11 am
(@jlvfranca)
Posts: 20
Eminent Member
Topic starter
 

Sim, Edivan. É o que necessito.

jlvfrança

 
Postado : 07/01/2016 10:10 am
(@jlvfranca)
Posts: 20
Eminent Member
Topic starter
 

Reinaldo, muito obrigado. Era o que estava precisando.

Abraços

 
Postado : 07/01/2016 11:49 am