Gerar PDF no Excel automaticamente VBA – Planilha gerar PDF Gratuita

Gerar PDF no Excel automaticamente VBA – Planilha gerar PDF Gratuita

Como você faz para gerar PDF no Excel automaticamente com VBA? Neste artigo veja como criar um relatório de cobrança com Excel VBA, aonde automaticamente faremos com que sejam gerados em PDF ou impressos 400 cobranças para clientes diferentes.

O código aplicado neste relatório pode ser utilizado em várias situações parecidas com pequenas adaptações, veja abaixo no exemplo o código que foi utilizado e como ele funciona para a geração destes dados no passo-a-passo.

Relatório VBA de cobrança Excel 2

O Problema

Temos uma lista com 400 clientes em média, aonde são realizadas cobranças semanais de jornais. Funciona da seguinte forma o processo do cliente:

  1. Deixa edições dois jornais diariamente na banca, chamaremos de Diário da Rua e Gazeta da Rua.
  2. Estas quantidades variam de banca a banca.
  3. No começo da semana é impresso o relatório com a quantidade de periódicos deixados em cada dia para cada um dos clientes.
  4. Este relatório é utilizado para cobrar os que foram vendidos e recolher os que não foram vendidos.

O problema do processo acima é que são 400 clientes, então o relatório, mesmo que usando PROCV para preencher a planilha com os dados para a cobrança precisa ser impresso um-a-um, selecionar o cliente na lista e clicar em imprimir.

O cliente perde em torno de 4 h para emitir todos os relatórios, sendo que alguns ele ainda esquecia de imprimir ou ficavam fora de ordem.

A solução para este problema foi então gerar estes dados automaticamente com VBA no Excel.

Neste exemplo temos o código para fazer o loop por todos os dados dos clientes, gerar em PDF ou imprimir os relatórios diretamente na impressora à partir do Excel.

Desta forma temos um relatório de cobranças automático no Excel com VBA.

Relatório de cobrança Excel VBA 3

Solução

No Excel fazemos um loop por todas as linha
s dos clientes da planilha de cadastro, os dados dos clientes são colados diretamente na célula aonde está o cliente a ser impresso, os dados são alterados então imediatamente.

Relatório de cobrança Excel VBA 4

Na outra planilha temos então a distribuição que tivemos em cada dia da semana para cada um dos clientes, estes dados são retornados via PROCV para o relatório de cobrança.

Relatório de cobrança Excel VBA 5

No relatório de cobranças Excel VBA temos então o seguinte resultado com a busca de dados à partir desta tabela.

Relatório de cobrança Excel VBA 3

Gerar relatório em PDF ou imprimir VBA Excel

Com o código abaixo temos então a geração do relatório em PDF para ser posteriormente armazenado ou enviado por e-mail e também o código para imprimir o relatório de cobrança para todos os clientes.

Sub lsGerar(ByVal lflImprimir As Boolean)
    On Error GoTo TratarErro
    
    'Declaração das variáveis
    'iTotalLinhas é o total de clientes
    'iLinhas é o controle da linha atual no loop
    'lstrPasta Pasta aonde salvar os arquivos pdf's
    Dim iTotalLinhas    As Long
    Dim iLinhas         As Long
    Dim lstrPasta       As String
    
    'Total de clientes, de cima para baixo localiza a última célula preenchida da lista
    iTotalLinhas = Worksheets("Clientes").Cells(Rows.Count, 1).End(xlUp).Row
    
    'Inicia na linha logo abaixo do cabeçalho
    iLinhas = 2
    
    If lflImprimir = False Then
        lstrPasta = lfSelecionarPasta
        
        If lstrPasta = vbNullString Then
            Exit Sub
        End If
    End If
    
    'Passa por todos os clientes
    While iLinhas <= 100 'iTotalLinhas
        'Atualiza o valor do cliente
        Worksheets("Recibo").Cells(1, 5).Value = Worksheets("Clientes").Cells(iLinhas, 1).Value
        
        If lflImprimir = True Then
            'Imprime o recibo
            ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
            IgnorePrintAreas:=False
        Else
            ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=lstrPasta & "\" & Worksheets("Clientes").Cells(iLinhas, 1).Value & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False
        End If
        
        'Passa para o próximo cliente
        iLinhas = iLinhas + 1
    Wend
    
Sair:
    Exit Sub
TratarErro:
    'Tratamento de erro se houverem problemas
    MsgBox "Houve um erro na impressão!", vbCritical
    GoTo Sair
End Sub

'Procedimento para salvar arquivos
Public Function lfSelecionarPasta() As String
    Dim fDlg    As FileDialog

    Set fDlg = Application.FileDialog(FileDialogType:=msoFileDialogFolderPicker)

    'Retorna a pasta selecionada
    If fDlg.Show = -1 Then
        lfSelecionarPasta = fDlg.SelectedItems(1)
    Else
        MsgBox "Não foi selecionada nenhuma pasta"
    End If
End Function

Public Sub lsGerarPDF()
    lsGerar False
End Sub

Public Sub lsImprimir()
    lsGerar True
End Sub

Download planilha de relatório de cobranças Excel

Para o download do exemplo utilizado neste artigo preencha o seu nome e e-mail no formulário abaixo.

Baixe a planilha

Abraço

Marcos Rieper

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel