Gerar PDF no Excel automaticamente VBA - Planilha gerar PDF Gratuita
Especialista em Excel

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.

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:
- Deixa edições dois jornais diariamente na banca, chamaremos de Diário da Rua e Gazeta da Rua.
- Estas quantidades variam de banca a banca.
- No começo da semana é impresso o relatório com a quantidade de periódicos deixados em cada dia para cada um dos clientes.
- 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.

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.

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.

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

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.
Principais recursos
Confira o que este material oferece para você.
Perguntas frequentes
O material é realmente gratuito?
Sim. O acesso é gratuito e não exige cadastro.
Preciso ter o Excel instalado?
Recomendamos o Excel 2013 ou superior para todos os recursos.
Como faço para receber atualizações?
As atualizações são automáticas dentro da própria planilha.
Funciona no Excel do Mac?
Sim, funciona no Excel para Windows e para Mac.
Funciona no celular?
É possível visualizar no app do Excel; a edição completa é no computador.
Planilhas relacionadas
Planilha de Fluxo de Caixa
R$ 89,90
Controle de Estoque
R$ 69,90
Planilha Financeira Empresarial
R$ 79,90
Dashboard Financeiro no Excel
R$ 49,90





