Olá pessoal.
A função abaixo é muito interessante para quem tem uma rotina de enviar relatórios pelo e-mail. As vezes você precisa de produtividade até no envio do relatório, por isso criar uma rotina no VBA para encaminhar e-mail com arquivos em anexo é interessante.
Não há segredos nessa função:
Declaramos as variáveis e criamos os objetos necessários. Contudo, é obrigatório importar a biblioteca de classe que permite esse envio. No menu do Editor de Visual Basic acesse: Ferramentas > Referencias >Microsoft Outlook 14.0 Object Library.
As variaveis endereco, arquivo, destino, assunto, mensagem devem ser customizadas pelo usuario.
Pronto! A função já pode rodar.
[sourcecode highlight=”” language=”vb”]
Sub Envio()
Dim endereco, arquivo, destino, assunto, mensagem As String
Dim row, report As Integer
Dim OutApp As Outlook.Application
Dim OutMail As Outlook.MailItem
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
Application.DisplayAlerts = False
destino = <a href="mailto:teste@teste.com.br">teste@teste.com.br</a>
endereco = "C:\Ususarios\meunome\Imagens\"
arquivo = "Foto.png"
assunto = "Minhas fotos"
mensagem = "Segue minha foto"
With OutMail
.To = destino
.CC = ""
.BCC = ""
.Subject = assunto
.Body = mensagem
.Attachments.Add (endereco & arquivo)
.Send
End With
Application.DisplayAlerts = True
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
[/sourcecode]
Link permanente
não estou conseguinto ussar o código acima ? porque será ?
Link permanente
Eleandro. Vc importou as bibliotecas ? Manda ai a msg de erro pra ver se te ajudo. Abraços!
Link permanente
Gostaria de utilizar esta função com o Outlook Express, é possível? att, Fernando
Link permanente
Fernando, Nunca testei mas acredito que há essa possibilidade!!! Abraços!
Link permanente
Pessoal, boa tarde !
Preciso de uma coisa mais ou menos parecida…
Tenho um controle de estoque em uma planilha excel onde está compartilhada pra várias pessoas e conforme vão uçtilizando os itens de meu estoque eu preciso abrir um pedido de compra para repor os itens.
Existe alguma maneira de quando esses itens estiverem em uma situação crítica, EX: 10 peças para acabar, atravéz de vba o excel mandar um e-mail para mim avisando sobre as peças que estão acabando, ou para eu verificar a planilha ?
Por favor me ajudem preciso muito disso !
Link permanente
Gilson, boa noite!
É possível sim, basta vc criar uma rotina que verifique se o estoque está abaixo de 10 toda vez que alguém utilizar os itens e fizer a baixa na planilha, sendo assim, a rotina chamará a função que envia o email(nesse topico), porem vale salientar que o usuario que utiliza a planilha tem quem ter email ativo com o outlook, pois o email partirá dele do outlook.
Espero que tenha ajudado.
Link permanente
Pessoal, bom dia !
Primeiramente quero agradecer pelo apoio e em seguida gostaria de pedir se vocês não podem me ajudar com a questão do código em VBA pra eu poder automatizar minha planilha aqui na empresa, eu sei dos conceitos do VBA e tudo que pode fazer porém ainda não sei trabalhar com isso… preciso aprender !!!
Então gostaria de pedir para postar ou mandar em meu e-mail este código se não for pedir demais.
Agradeço pela ajuda desde já. Meu e-mail: gilson.s.ferreira@gmail.com
Link permanente
Gilson. Boa noite! Conseguiu resolver seu problema ? Abraços!
Link permanente
Boa tarde,
gostaria de saber se há a possiblidade de que o arquivo em anexo a ser enviado, fosse a propria planilha com o botão de enviar o email, onde seria criado um novo arquivo excel, com a cópia da sheet(“Plan”) da planilha original, e este novo arquivo seria o arquivo em anexo.
Obrigado pela ajuda, se puder enviar no email ou apenas avisar que foi respondido: pedromc89@gmail.com
Link permanente
Pode sim sem problemas o anexo nada mais eh do setar um endereco de uma arquivo. O que vc precisa antes eh criar um rotina que copie a sheet um e salve em pasta padrao. Em seguida vc senta o arquivo nessa pasta padrao para ser anexada.
Link permanente
Está dando erro de compilação:
Erro de sintaxe nessa linha
destino = l.costa@greccolog.com.br
Link permanente
Fala Leandro. Voce colocou entre aspas o email?
destino = “l.costa@greccolog.com.br”
Abraços!
Link permanente
Sim:
destino = l.costa@greccolog.com.br
Link permanente
‘destino = “l.costa@greccolog.com.br”
Link permanente
Conseguiu? Coloca a rotina toda ai por favor ?
Link permanente
Olá, gostaria de utilizá-lo em um form, como proceder neste problema?
obrigado
Link permanente
Ronny. Como seria a estrutura que vc planeja para seu Form? Acredito que nao seja muito complicado, vc so precisa criar campos para cada variavel da rotina. Por exemplo a Sub Envio estaria vinculada a o evento de click de um botao. As variaveis destino, endereco, arquivo, assunto e mensagem vc colocaria em componentes por exemplo:
destino = textbox1.text
Link permanente
Link permanente
Amigo, se no caso eu quisesse substituir o envio do e-mail pela opção de envio de sms pelo próprio outlook como seria?
Link permanente
Show de bola o post!!! Parabénss!!
Link permanente
Obrigado!
Link permanente
É a primeira vez que entro na página, achei muito bom, parabéns pelo trabalho.
Mas ainda estou com uma dúvida, como faço para no “corpo de email” colocar também gráficos do excel (Ou Chart). É possível?
Abraço!
Link permanente
Fernando. Voce deve inserir graficos como imagens. Se voce nao tiver problemas com o ingles, segue esse blog http://www.rondebruin.nl/win/s1/outlook/amail7.htm
Link permanente
Boa tarde!
Gostaria de ajuda para enviar um e-mail sem nada em anexo, apenas uma macro que ao clicar em um ícone, um e-mail é disparado via Outlook. Contendo apenas assunto e mensagem.
No aguardo de uma resposta, obrigada!
Link permanente
Samara. Esse codigo faz justamente isso. é so voce comentar a funcao de anexo que eh essa, colocando um aspas na frente Attachments.Add
Link permanente
Boa Tarde
utilizo essa rotina a tempos, só que agora preciso enviar mais que um anexo, como faço?
Link permanente
Julio. Voce precisa criar uma loop no codigo para ele repetir a operação de anexo. Ou entao basta voce repetir a linha Attachments.Add . Qual seu nivel de vba ? Tente estudar sobre FOR NEXT. ABS
Link permanente
Caro, você saberia informar se tem algum código para PowerPoint que realize a mesma função ou abrir um e-mail através de um botão no PowerPoint?
Link permanente
.Attachments.Add (endereco & arquivo)
Quando chego nesta estapa, esta dando erro de não localização do arquivo. O que pode ser ? O caminho esta correto.