Código VBA que envi...
 
Notifications
Clear all

Código VBA que envia arquivo por e´mail a uma lista

3 Posts
3 Usuários
0 Likes
978 Visualizações
(@e_straub)
Posts: 8
Active Member
Topic starter
 

Alguém sabe um código VBA que anexa um arquivo em pdf de um diretório de rede, anexa ao e-mail do outlook e envia para uma lista de emails de colaboradores?

 
Postado : 11/01/2021 12:58 pm
(@televisaos)
Posts: 49
Eminent Member
 

Boa tarde, 

Veja se consegue adaptar o seguinte código para as suas necessidades.

 

Sub teste_email()

Dim ObjOL As Object
Dim OlMail As Object
Dim Signature As String
Dim ultimalinha As Integer

Signature = CreateObject("Scripting.FileSystemObject").GetFile(Environ("AppData") & "\Microsoft\Signatures\INCLUA AQUI O NOME DA SUA ASSINATURA.txt").OpenAsTextStream(1, -2).readall 'Salva o conteúdo do arquivo .txt contendo a assinatura
CreateObject("Scripting.FileSystemObject").GetFile(Environ("AppData") & "\Microsoft\Signatures\INCLUA AQUI O NOME DA SUA ASSINATURA.txt").OpenAsTextStream(1, -2).Close 'Fecha o arquivo .txt contendo a assinatura
ultimalinha = Range("A2").End(xlDown).Row 'Verifica qual a última linha preenchida para determinar o limite superior do loop

For emails = 2 To ultimalinha
Set ObjOL = CreateObject("Outlook.Application")
Set OlMail = ObjOL.CreateItem(0)
With OlMail
.To = CStr(ThisWorkbook.Sheets("Send_Mails").Cells(emails, 1)) 'Preenche destinatário
.CC = CStr(ThisWorkbook.Sheets("Send_Mails").Cells(emails, 2)) 'Preenche item CC
.Subject = CStr(ThisWorkbook.Sheets("Send_Mails").Cells(emails, 4)) 'Preenche título do email
.Body = CStr(ThisWorkbook.Sheets("Send_Mails").Cells(emails, 5)) & vbNewLine & vbNewLine & Signature 'Preenche o corpo do email e inclui a assinatura
.Attachments.Add (CStr(ThisWorkbook.Sheets("Send_Mails").Cells(emails, 6))) 'Anexa o arquivo
.Send 'Envia o email
End With
Next emails
Set ObjOL = Nothing 'Limpa a variável
Set OlMail = Nothing 'Limpa a variável
End Sub

Att, Televisaos
 
Postado : 11/01/2021 4:16 pm
carlosrgs
(@carlosrgs)
Posts: 631
Prominent Member
 

SE vc quer pelo Outlook, tenho esse que funciona aqui com Office 365

 

' INICIO DO E-MAIL.
Dim objOutlook As Object
Dim objNameSpace As Object
Dim objOlAccount As Object
Dim objMailItem As Object

On Error Resume Next
Set objOutlook = GetObject(, "Outlook.Application")
On Error GoTo 0

If objOutlook Is Nothing Then
Set objOutlook = CreateObject("Outlook.Application")
Set objNameSpace = objOutlook.GetNamespace("MAPI")
End If

Set objOlAccount = objOutlook.Session.accounts.Item(1)

Set objMailItem = objOutlook.CreateItem(0)

With objMailItem
Set .SendUsingAccount = objOlAccount


.To = "dest01@cac.com.br; dest02@cac.com.br; " & Planilha07.[H10] 'Enviar para
.CC = ""
.BCC = ""
.Subject = Planilha07.[H6] 'Titulo do email
.Body = Planilha07.[H7] & vbCrLf & " " & vbCrLf & Planilha07.[I7] _
& vbCrLf & " " & vbCrLf & "Obrigado!" 'Corpo do email

.Attachments.Add "C:\relato\" & Planilha07.[B10] & ".pdf"
.Send
End With

Set objMailItem = Nothing
Set objOlAccount = Nothing
Set objNameSpace = Nothing
Set objOutlook = Nothing
' FINAL DO EMAIL
Este post foi modificado 3 anos atrás por carlosrgs

_______________________________________________________________________________________________
Carlos Santos
* Marque o tópico como Resolvido se foi solucionado seu problema.

 
Postado : 12/01/2021 10:55 am