- 17 Ago 2016 às 15:05
#14073
Tenho um relatório no excel que estou copiando manualmente em um email template para enviar e queria uma macro que abrisse o email template e buscasse uma String, substituisse pelo relatório e enviasse o email para uma lista pré-definida.
Consegui uma macro que faz parecido com isso , mas quando copia para o email ela não busca a string para substituir ela apenas faz um replace no email template.
Sub SALVA_NO_EMAIL()
Dim mainWB As Workbook
Dim SendID
Dim CCID
Dim Subject
Dim Body
Set otlApp = CreateObject("Outlook.Application")
Set olMail = otlApp.CreateItemFromTemplate("D:\userdata\pmeneses\Desktop\FlashReporttemplate2.msg")
Set Doc = olMail.GetInspector.WordEditor
Set mainWB = ActiveWorkbook
SendID = mainWB.Sheets("Dashboard (3)").Range("p2").Value
CCID = mainWB.Sheets("Dashboard (3)").Range("p2").Value
Subject = mainWB.Sheets("Dashboard (3)").Range("p3").Value
Set Body = mainWB.Sheets("Dashboard (3)").Range("c1:l46")
With olMail
.To = SendID
If CCID <> "" Then
.CC = CCID
End If
.Subject = Subject
Body.Copy
Set wrdRng = Doc.Range
.Display
wrdRng.PasteSpecial Placement:=wdInLine ' , DataType:=wdPasteBitmap
' .Send
End With
'MsgBox ("you Mail has been sent to " & SendID)
End Sub
Consegui uma macro que faz parecido com isso , mas quando copia para o email ela não busca a string para substituir ela apenas faz um replace no email template.
Sub SALVA_NO_EMAIL()
Dim mainWB As Workbook
Dim SendID
Dim CCID
Dim Subject
Dim Body
Set otlApp = CreateObject("Outlook.Application")
Set olMail = otlApp.CreateItemFromTemplate("D:\userdata\pmeneses\Desktop\FlashReporttemplate2.msg")
Set Doc = olMail.GetInspector.WordEditor
Set mainWB = ActiveWorkbook
SendID = mainWB.Sheets("Dashboard (3)").Range("p2").Value
CCID = mainWB.Sheets("Dashboard (3)").Range("p2").Value
Subject = mainWB.Sheets("Dashboard (3)").Range("p3").Value
Set Body = mainWB.Sheets("Dashboard (3)").Range("c1:l46")
With olMail
.To = SendID
If CCID <> "" Then
.CC = CCID
End If
.Subject = Subject
Body.Copy
Set wrdRng = Doc.Range
.Display
wrdRng.PasteSpecial Placement:=wdInLine ' , DataType:=wdPasteBitmap
' .Send
End With
'MsgBox ("you Mail has been sent to " & SendID)
End Sub