Vídeo recomendado
https://youtu.be/diWPPPhW-9E

E-mail do Excel no Campo "Para" do Outlook

Dicas dos mais variados tipos, necessidades, angústias, enfim
Avatar do usuário
Melo
Colaborador
Colaborador
Mensagens: 70
Registrado em: Ter Jan 12, 2010 4:26 pm

E-mail do Excel no Campo "Para" do Outlook

Mensagem por Melo »

Amigos tudo na paz,

Titio Melo de volta com uma dica legal, bemm . . . Hummm . . . Amigos é uma dúvida que surgiu, ou melhor recebi por e-mail de um amigo

Este é uma dica, mais tem varias dicas e tutorias legais sob o mesmo.

Aproveito para agradecer aos amigos que me envia e-mails com as dúvidas elogios e etc, AVISO: amigos postem suas dúvidas aqui no Fórum do nosso irmãozinho, vamos responder com o maior prazer e compartilhar conhecimentos com as trocas de informações.

Vamos ao que interessa . . . A Dúvida.

Como inserir o E-mail no Campo "Para" do Outlook pelo VBA?
Basicamente é o questionamento.

Primeiramente vamos criar um Módulo e no mesmo inserir o seguinte código

Código: Selecionar todos

Sub Email_Outlook()
' Aqui vamos fazer as devidas Declarações
Dim josielmelo As Range
Dim OutApp As Object
Dim OutMail As Object
Dim destinatario As String
' Aqui vamos informar a onde se encontra o E-mail 
destinatario = Sheets("Plan1").Range("A1")
' Aqui vamos buscar as informações na Plan1 para inserir no Corpo da Mensagem
Set josielmelo = Nothing
On Error Resume Next
Set josielmelo = Selection.SpecialCells(xlCellTypeVisible)
Set josielmelo = Sheets("Plan1").Range("D4:D12").SpecialCells(xlCellTypeVisible)
On Error GoTo 0
' Caso apresente erro informar ao usuário
If josielmelo Is Nothing Then
MsgBox "A seleção não é valida ou a Plan Esta Protegida" & _
vbNewLine & "Por Favor, corrija e Tente Novamente", vbOKOnly
Exit Sub
End If
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
' Aqui fazemos a Referencia ao Outlook
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
On Error Resume Next
' AQUI FICA O QUESTIONAMENTO, quando carregar o Outlook o Campo "Para" é preenchido 
' com o destinatário. 
With OutMail
.To = destinatario ' AQUI O DESTINATÁRIO
.CC = ""
.BCC = ""
.Subject = "TESTE NO ENVIO DE EMIAL" ' AQUI FICA O ASSUNTO
.HTMLBody = RangetoHTML(josielmelo) ' AQUI o que vai conter no corpo da mensagem.
.Display
End With
On Error GoTo 0
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Filhos entendido até aqui ok, é ou não é meuzinho na chupeta . . . rsrsrs
Vamos passar para o Corpo da Mensagem .HTMLBody = RangetoHTML(josielmelo)

Código: Selecionar todos

Function RangetoHTML(josielmelo As Range)
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
josielmelo.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
FileName:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
TempWB.Close savechanges:=False
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function
Prontinho o código para ser usado e adaptado conforme as necessidades, neste falta fazer algumas melhorias, mais esta funcionando corretamente.

Espero que ajudem aos amigos.

Não me recordo, mais eu já vi esse código em algum fórum com alguma dúvida relacionado.

Abraços.


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Mestre_Oda
Acabou de chegar
Acabou de chegar
Mensagens: 5
Registrado em: Ter Mar 27, 2012 8:30 am

Re: E-mail do Excel no Campo "Para" do Outlook

Mensagem por Mestre_Oda »

http://intranetfemsabrasil/kof/gds/Imag ... 0Form.PNG
Obrigado Josiel, estamos quase lá, o que preciso é isso:
Quando clicar no campo "E-mail", redirecionará para o outlook, inserindo o respectivo endereço de email selecionado, que está na minha base de clientes!
Tudo isso dentro do formulário, tem como!?

Segue modelo zipado em anexo, para consulta
Muito obrigado pela ajuda

Oda :?
Anexos
ModeloCadastro_Dados.zip
Modelo Formulário
(74.71 KiB) Baixado 627 vezes
Imagem Form
Imagem Form
Capture Form.PNG (46.7 KiB) Exibido 18539 vezes


Avatar do usuário
Melo
Colaborador
Colaborador
Mensagens: 70
Registrado em: Ter Jan 12, 2010 4:26 pm

Re: E-mail do Excel no Campo "Para" do Outlook

Mensagem por Melo »

Isso mesmo,

este codigo pega o e-mail cadastrado na planilha e ao clicar no botão enviar ele abre o Outlook com o e-mail e mais o conteudo no corpo do e-mail, tirado da planilha.


NoobGui
Colaborador
Colaborador
Mensagens: 15
Registrado em: Qui Jan 14, 2016 1:28 pm

Re: E-mail do Excel no Campo "Para" do Outlook

Mensagem por NoobGui »

Nesse primeiro projeto de enviar email: Como faço pra centralizar o email enviado e também pegar imagens e gráficos?


Disable adblock

This site is supported by ads and donations.
If you see this text you are blocking our ads.
Please consider a Donation to support the site.


Responder