Página 1 de 1

Enviar apenas uma aba do arquivo como anexo de email

Enviado: 01 Dez 2016 às 23:56
por Otalivio
Olá!

Graças a esse fórum, estou conseguindo me virar bem em meu trabalho, criando códigos VBA para agilizar meu serviço :)

Bem, preciso de uma ajuda, e não achei nada na internet.

Tenho uma planilha com algumas abas, mas preciso enviar por email não o arquivo inteiro, mas apenas a aba "Relatório" , e que essa aba vá anexada como um arquivo do Excel. E que esse anexo vá com o nome "Relatório Cliente XYZ de dd/mm/aaaa"

Será pedir muito?

Agradeço desde já!

Obrigado!

Re: Enviar apenas uma aba do arquivo como anexo de email

Enviado: 02 Dez 2016 às 23:13
por Otalivio
Gente!

Achei o código e funciona muito bem!

Sub enviaPlanilhaAtiva()

Dim oOutlook As Object
Dim oEmail As Object
Dim wbAtual As Workbook
Dim sNomeArquivo As String
Dim sLocalTemp As String
Application.ScreenUpdating = False

Set oOutlook = CreateObject("Outlook.Application")
Set oEmail = oOutlook.CreateItem(0)
sLocalTemp = "C:\temp\"

' Copia a planilha ativa e salva em local temporário
ActiveSheet.Copy
Set wbAtual = ActiveWorkbook

' Aqui você define qual planilha deve ser gravada
sNomeArquivo = wbAtual.Worksheets(1).Name

On Error Resume Next
Kill sLocalTemp & sNomeArquivo
On Error GoTo 0
wbAtual.SaveAs FileName:=sLocalTemp & sNomeArquivo

With oEmail
'.To = "destino@gmail.com"
'.Subject = "Assunto"
'.body = "Corpo do e-mail"
.Attachments.Add wbAtual.FullName
.Display
End With

'Deleta o arquivo temporário
wbAtual.ChangeFileAccess Mode:=xlReadOnly
Kill wbAtual.FullName
wbAtual.Close SaveChanges:=False

Set oEmail = Nothing
Set oOutlook = Nothing
End Sub