sexta-feira, 19 de setembro de 2025

📬 Automação Inédita em VBA: Envio Automático de Relatórios da Rede por E-mail Personalizado

 🧐 O Problema

No dia a dia empresarial:

  • Planilhas ficam em pastas de rede e precisam ser enviadas por e-mail.

  • Muitos perdem tempo abrindo a planilha, salvando em PDF e depois anexando manualmente no Outlook.

  • Além disso, pode haver risco de enviar a versão errada ou esquecida.


💡 A Solução

Criar uma automação no Excel que:

  1. Localiza a planilha mais recente em uma pasta de rede.

  2. Exporta automaticamente para PDF.

  3. Abre um e-mail no Outlook já com o PDF anexado.

  4. Personaliza o corpo do e-mail com mensagem padrão.

Com um clique, o relatório já está pronto para envio ✅.


🚀 Como Funciona

  1. O usuário define em "Config" a pasta da rede onde ficam os relatórios.

  2. A macro identifica o arquivo mais recente.

  3. Converte para PDF.

  4. Cria e preenche automaticamente o e-mail no Outlook.


🧑‍💻 Código VBA

Option Explicit Sub EnviarRelatorioMaisRecente() Dim pasta As String, arquivoMaisRecente As String Dim fso As Object, pastaObj As Object, arquivo As Object Dim dataRecente As Date Dim ws As Worksheet Dim outlookApp As Object, outlookMail As Object Dim pdfPath As String ' Lê a pasta da aba Config Set ws = ThisWorkbook.Sheets("Config") pasta = ws.Range("A2").Value If pasta = "" Then MsgBox "⚠️ Informe o caminho da pasta em Config (A2).", vbExclamation Exit Sub End If ' Acha o arquivo mais recente Set fso = CreateObject("Scripting.FileSystemObject") Set pastaObj = fso.GetFolder(pasta) dataRecente = 0 For Each arquivo In pastaObj.Files If arquivo.DateLastModified > dataRecente And InStr(arquivo.Name, ".xlsx") > 0 Then dataRecente = arquivo.DateLastModified arquivoMaisRecente = arquivo.Path End If Next arquivo If arquivoMaisRecente = "" Then MsgBox "❌ Nenhum arquivo Excel encontrado na pasta.", vbCritical Exit Sub End If ' Abre o arquivo e exporta como PDF Dim wb As Workbook Set wb = Workbooks.Open(arquivoMaisRecente) pdfPath = Replace(arquivoMaisRecente, ".xlsx", ".pdf") wb.ExportAsFixedFormat Type:=0, Filename:=pdfPath wb.Close SaveChanges:=False ' Cria o e-mail no Outlook Set outlookApp = CreateObject("Outlook.Application") Set outlookMail = outlookApp.CreateItem(0) With outlookMail .To = "destinatario@empresa.com" .Subject = "📊 Relatório mais recente" .Body = "Segue em anexo o relatório atualizado em " & Format(dataRecente, "dd/mm/yyyy hh:nn") & "." & vbCrLf & vbCrLf & "Att," & vbCrLf & "Equipe Financeira" .Attachments.Add pdfPath .Display ' usar .Send se quiser enviar direto End With MsgBox "📬 Relatório pronto para envio no Outlook!", vbInformation End Sub

📊 Exemplo prático

  • Pasta \\Servidor\Financeiro\Relatorios\

  • Arquivo mais recente → Relatorio_Vendas_2025-09-12.xlsx

  • Macro exporta em PDF → Relatorio_Vendas_2025-09-12.pdf

  • Abre Outlook com o PDF já anexado ✅


🎯 Onde é útil?

✅ Financeiro → envio diário de vendas.
✅ RH → relatórios de folha.
✅ Diretoria → relatórios de desempenho semanais.
✅ Escritórios → entregar resultados de clientes automaticamente.


🔥 Por que é inédito?

Pouca gente pensa em integrar rede + Excel + Outlook dessa forma.
Aqui o processo é fim a fim: localizar → exportar → anexar → enviar.


📢 Propaganda do Contador

Se você é prestador de serviços do Simples Nacional — psicólogo, fonoaudiólogo, advogado com sociedade unipessoal ou outro profissional liberal — posso ajudar com sua contabilidade!

👉 Faço abertura e registro de empresas no Simples Nacional, acompanhamento mensal, apuração de tributos e planejamento tributário.
Comigo, você terá mais tempo para os seus pacientes e clientes, sem se preocupar com burocracia fiscal. 😉

Nenhum comentário:

Postar um comentário