Notifications
Clear all

Enviar e-mail com anexo MACRO

4 Posts
2 Usuários
0 Reactions
1,187 Visualizações
(@caiobispo)
Posts: 53
Trusted Member
Topic starter
 

Amigo, peço desculpas por insistir tanto no assunto, mas por erro meu de não saber explicar ficou faltando um detalhe que não consegui colocar sozinho em minha macro.

Eu preciso de uma macro que salve o arquivo e envie ele por anexo no e-mail, mas não consegui, vou postar meu código que envia e-mail.
Graças a ajuda de vcs consegui montar este código e esta perfeito, só falta ele anexar automaticamente o arquivo que foi salvo.

________________________________________________________________
Sub Salvar_Enviar_email()

Application.ScreenUpdating = False

On Error Resume Next
Dim Caminho As String
Dim Arquivo As String

Caminho = Sheets("Plan1").Range("i29").Value2
Arquivo = Sheets("Plan1").Range("i31").Value2

ActiveWorkbook.SaveAs Filename:=Caminho & Arquivo & ".xlsm"
MsgBox ("Planilha Salva Como : " & Arquivo & ".xlsm")

'msg de aviso
Dim resposta
resposta = MsgBox("O e-mail será enviado para " & Plan1.Range("j24").Value & " com cópia para " & Plan1.Range("j25").Value & ". Deseja realmente enviar este e-mail?", vbQuestion + vbOKCancel, "Confirmação")
If resposta = vbCancel Then Exit Sub

'envio de e-mail
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ThisWorkbook.Sheets("Plan1").Range("k24").Value
.CC = ThisWorkbook.Sheets("Plan1").Range("k25").Value
.BCC = ""
.Subject = ThisWorkbook.Sheets("Plan1").Range("a1") & Now
Dim corpo As String

corpo = "Prezados," & vbCr & vbCr
corpo = "Prezados, segue em anexo a planilha diaria"
.Body = corpo
.Attachments.Add =Arquivo
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub

_______________________________________________________________________

Obrigado pela ajuda!

 
Postado : 30/05/2014 1:02 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

CaioBispo,

Boa tarde!

O que é que você está gravando na variável Arquivo? Vi que é o conteúdo de Sheets("Plan1").Range("i31").Value2. Mas o que é contém nessa célula dessa planilha? Se contiver o caminho completo do arquivo (por exemplo: C:Testevenda de produtos.xlsx) que será anexado ao e-mail, está ok e só precisa alterar a linha:

.Attachments.Add =Arquivo

Para:

.Attachments.Add Arquivo

Se não tiver, conserte o que está na célula antes de gravar na variável.

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 30/05/2014 2:19 pm
(@caiobispo)
Posts: 53
Trusted Member
Topic starter
 

Wagner, o que esta na variavel é exatamente o que na i31 "c:user(usuario)desktop " e acho que esta ai o erro, pois na celula só tem o caminho e não o nome do arquivo, entao vou tentar colocar o restante com o nome do arquivo para ele anexar. Obrigado pela ajuda, depois posto se consegui resolver e aproveito para deixar a formula correta para caso alguem queira usa-la.

 
Postado : 30/05/2014 4:04 pm
(@caiobispo)
Posts: 53
Trusted Member
Topic starter
 

Obrigado a todos, segue abaixo o código que terminei para Salvar arquivo e Enviar por e-mail com anexo

------------------------------------------------------------------------------------------------------------------------------
Sub Salvar_Enviar_email()
'Parar de piscar a tela
Application.ScreenUpdating = False

'salvar a planilha
On Error Resume Next
Dim Caminho As String
Dim Arquivo As String

Caminho = Sheets("Plan1").Range("i28").Value2
Arquivo = Sheets("Plan1").Range("i30").Value2
Envio = Sheets("Plan1").Range("i31").Value2 & ".xlsm"

ActiveWorkbook.SaveAs Filename:=Caminho & Arquivo & ".xlsm"
MsgBox ("Planilha Salva Como : " & Arquivo & ".xlsm")

'msg de aviso
Dim resposta
resposta = MsgBox("O e-mail será enviado para " & Plan1.Range("j24").Value & " com cópia para " & Plan1.Range("j25").Value & ". Deseja realmente enviar este e-mail?", vbQuestion + vbOKCancel, "Confirmação")
If resposta = vbCancel Then Exit Sub

'envio de e-mail
Dim Envio As String

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
With OutMail
.To = ThisWorkbook.Sheets("Plan1").Range("k24").Value
.CC = ThisWorkbook.Sheets("Plan1").Range("k25").Value
.BCC = ""
.Subject = ThisWorkbook.Sheets("Plan1").Range("a1") & Now
.Attachments.Add Envio
Dim corpo As String

corpo = "Prezados," & vbCr & vbCr
corpo = "Prezados, segue em anexo a planilha diaria"

.Body = corpo
.display
End With
Set OutMail = Nothing
Set OutApp = Nothing
Application.ScreenUpdating = True
End Sub

------------------------------------------------------------------------------------------------------------------------------

 
Postado : 30/05/2014 6:20 pm