Salvar Planilha em PDF por VBA
Olá, Programadores! Hoje vou mostrar para vocês um Código Excel VBA para salvar uma Planilha em PDF.
Farei isso mostrando para vocês um dos códigos que tenho por aqui e que utilizo, principalmente, para salvar Dashboards.
Assim, começamos olhando para o código abaixo:
Código: Salvar Planilha em PDF por Excel VBA
ActiveWorkbook.Sheets.Select ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "Dashboard Vendas", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False
Entendendo o Código
Por início, note que neste código utilizamos o comando “ActiveWorkbook.Sheets.Select”, que seleciona todas as abas do Arquivo Excel.
Portanto, ao utilizar esse código todas as abas serão salvas em um mesmo PDF.
Ainda sobre o código, a partir do comando “ActiveSheet.ExportAsFixedFormat” temos informações relevantes referentes ao arquivo que será salvo, por exemplo o Filename = “Dashboard Vendas”, que representa o nome do arquivo que será salvo.
Além disso, temos também o comando “OpenAfterPublish = False”, que mostra para o Arquivo que não queremos abrir o PDF salvo, em um primeiro momento.
Mas e se ao longo do tempo formos salvando este mesmo arquivo várias vezes em uma mesma pasta do computador? Em casos como esse, costumo utilizar o seguinte código abaixo:
If Dir(°CAMINHO_SELECIONADO & "\" & "Dashboard Vendas") <> "" Then Kill °CAMINHO_SELECIONADO & "\" & "Dashboard Vendas"
Partindo do pressuposto que foi atribuído ao “°CAMINHO_SELECIONADO” um caminho pré existente no computador, portanto, note que sempre que a macro for executada, será excluído um arquivo de nome “Dashboard Vendas” antes de ser salvo outro com o mesmo nome.
Assim, caso ainda não exista um arquivo “Dashboard Vendas” na pasta “°CAMINHO_SELECIONADO”, o VBA simplesmente pula essa etapa do código.
Por fim, note que se utilizarmos o código abaixo, sem o comando de introdução “ActiveWorkbook.Sheets.Select”, apenas a planilha selecionado será salva em PDF:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "Dashboard Vendas", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, _ OpenAfterPublish:=False
Conclusão
Utilizamos macros como essa tanto em pequenos arquivos quanto em grandes sistemas.
A impressão em PDF geralmente é uma etapa prévia à entrega final de relatórios a Gerentes e Diretores.
+ Saiba como abrir um arquivo através do Excel VBA
+ Saiba como enviar imagem via Outlook por Excel VBA
+ Saiba como selecionar um arquivo através do Excel VBA
+ Saiba como listar o nome de todas as abas de um Excel
Na Viabilidade de Acompanhamento de Projetos que fizemos para a EBM, utilizávamos um código como esse para “gerar” relatórios de fluxo de caixa por empreendimento mensalmente para a diretoria da empresa, como este:
Por fim, precisando de qualquer ajuda com seus Projetos, já sabe como nos contatar? Clique aqui e peça um orçamento sem compromisso!
Abraços!