Escolar Documentos
Profissional Documentos
Cultura Documentos
Acesso rápido
Pergunta
Pessoal,
tenho uma planilha com uma coluna chamada data e gostaria que qdo uma data desta coluna expirasse (ex.:
data<data_atual) o excel me enviasse um email automaticamente. Tem como fazer isso?
0
Entrar
para
Votar Desde ja, agradeço pela atenção de todos.
Aline Alves
Respostas
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 2 de 10
Antes de mais nada, você precisa ir no Editor do VBA (ALT+F11) >> Ferramentas >> Referências e na lista
de Referências Disponíveis, selecionar a opção Microsoft Outlook 1X.0 Object Library. (1X.0 pode ser 11.0 /
0 12.0, ou ouro dependendo da versão dos seus aplicativos) e em seguida Ok.
Entrar
para Esta passagem é importante para permitir que o Excel manipule objetos do Outlook, única forma que
Votar conheço de acrescentar informações ao corpo do e-mail.
Ainda não estou satisfeito com a formatação final do corpo do e-mail, mas agora é ajuste fino.
Como não sei a tua urgência envio esta versão parcial, enquanto dou os arremates finais na versão
definitva.
PS: Não esqueça de trocar o endereço de e-mail do código, ou vai encher a minha caixa de entrada de
informações.
[ ]s
Code Snippet
Sub Envio_Email()
Conteúdo = "Cod" & vbTab & vbTab & "Data" & vbTab & vbTab & "Empresa" & vbTab & vbTab &
"Produto" & vbLf
N = Planilha.Cells(Planilha.Rows.Count, 2).End(xlUp).Row
For i = 2 To N
DataRef = CDate(Planilha.Cells(i, 2).Value)
If DataRef < Date Then
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 1)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 2)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 3)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 4)) & vbLf
End If
Next i
With myItem
.To = "adilson.soledade@hotmail.com"
.Subject = "Envio de mensagem de datas expiradas"
.Body = Conteúdo
.Save
End With
End Sub
Todas as Respostas
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 3 de 10
Para que funcione é necessário inserir o código como evento da Pasta de Trabalho
Code Snippet
Private Sub Workbook_Open()
Dim DataRef
DataRef = Sheets(1).Cells(1, 1).Value
If DataRef < Date Then
ActiveWorkbook.SendMail _
Recipients:="responsavel@email.com.br", _
Subject:="Arquivo expirado " & ThisWorkbook.Name
End If
End Sub
[ ]s
Olá, Adilson.
Bem, tá quase lá. O código tá executando, mas ele não tá abrindo o Microsft Outlook (programa de email
0
que utilizo). Ao invés disso, o excel mostra uma tela informando que um programa de email está sendo
Entrar
para aberto e se eu permito isso ou não. Clico em SIM, mas nada acontece. Vc sabe o que há de errado? Tenho
Votar outras dúvidas tb:
1) se eu quiser determinar uma range para ser verificada, ou seja, na coluna A eu tenho as datas e quero
que ele verifique em toda aquela coluna quem já expirou e quem não, então, como eu escrevo a range
(a2:a25000, por exemplo)? Sheets(1).range.value
3) na verdade eu preciso de uma rotina que me diga qdo essas datas estão expiradas ou não e eu só vou
saber cado eu abra tal arquivo, certo? será que existe alguma coisa no Windows XP que faça isso
automaticamente?
Aline Alves
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 4 de 10
http://support.microsoft.com/kb/816644/en-us?spid=2512&sid=139
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 5 de 10
0
Entrar
para
Bem, tá quase lá. O código tá executando, mas ele não tá abrindo o Microsft Outlook
Votar (programa de email que utilizo). Ao invés disso, o excel mostra uma tela informando
que um programa de email está sendo aberto e se eu permito isso ou não. Clico em
SIM, mas nada acontece. Vc sabe o que há de errado? Tenho outras dúvidas tb:
1) se eu quiser determinar uma range para ser verificada, ou seja, na coluna A eu tenho
as datas e quero que ele verifique em toda aquela coluna quem já expirou e quem
não, então, como eu escrevo a range (a2:a25000, por exemplo)? Sheets(1).range.value
3) na verdade eu preciso de uma rotina que me diga qdo essas datas estão expiradas
ou não e eu só vou saber cado eu abra tal arquivo, certo? será que existe alguma coisa
no Windows XP que faça isso automaticamente?
Aline Alves
Aline,
No meu computador aparece a mesma mensagem, porém o e-mail é enviado. Vc alterou o endereço de
e-mail que coloquei e substitui-o por um válido? Se a resposta for afirmativa, verifique se o item consta na
pasta de e-mails enviadas.
O usuário deverá receber uma lista com os itens cujas datas foram expiradas, ou para cada data expirada
deve ser enviado um e-mail?
Quanto a outra solução, vc poderia usar a própria agenda do outlook para cadastrar compromissos com
datas de expiração e envio de aviso para os usuários.
Vou pesquisar a questão do corpo do e-mail, mas a resposta anterior já fornece boas informações sobre o
tema.
[ ]s
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 6 de 10
"Qual a condição a ser imposta?" O critério de expiração é para datas menores que a data atual:
"O usuário deverá receber uma lista com os itens cujas datas foram expiradas, ou para cada data expirada
deve ser enviado um e-mail?" Receber uma lista, em um úinico email, com as informações daquela data
expirada. por isso o interesse em saber como escrever no corpo do email.
Exemplo:
Aline Alves
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 7 de 10
Antes de mais nada, você precisa ir no Editor do VBA (ALT+F11) >> Ferramentas >> Referências e na lista
de Referências Disponíveis, selecionar a opção Microsoft Outlook 1X.0 Object Library. (1X.0 pode ser 11.0 /
0 12.0, ou ouro dependendo da versão dos seus aplicativos) e em seguida Ok.
Entrar
para Esta passagem é importante para permitir que o Excel manipule objetos do Outlook, única forma que
Votar conheço de acrescentar informações ao corpo do e-mail.
Ainda não estou satisfeito com a formatação final do corpo do e-mail, mas agora é ajuste fino.
Como não sei a tua urgência envio esta versão parcial, enquanto dou os arremates finais na versão
definitva.
PS: Não esqueça de trocar o endereço de e-mail do código, ou vai encher a minha caixa de entrada de
informações.
[ ]s
Code Snippet
Sub Envio_Email()
Conteúdo = "Cod" & vbTab & vbTab & "Data" & vbTab & vbTab & "Empresa" & vbTab & vbTab &
"Produto" & vbLf
N = Planilha.Cells(Planilha.Rows.Count, 2).End(xlUp).Row
For i = 2 To N
DataRef = CDate(Planilha.Cells(i, 2).Value)
If DataRef < Date Then
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 1)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 2)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 3)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 4)) & vbLf
End If
Next i
With myItem
.To = "adilson.soledade@hotmail.com"
.Subject = "Envio de mensagem de datas expiradas"
.Body = Conteúdo
.Save
End With
End Sub
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 8 de 10
Antes de mais nada, você precisa ir no Editor do VBA (ALT+F11) >> Ferramentas >>
0
Referências e na lista de Referências Disponíveis, selecionar a opção Microsoft Outlook
Entrar
para 1X.0 Object Library. (1X.0 pode ser 11.0 / 12.0, ou ouro dependendo da versão dos
Votar seus aplicativos) e em seguida Ok.
Esta passagem é importante para permitir que o Excel manipule objetos do Outlook,
única forma que conheço de acrescentar informações ao corpo do e-mail.
Ainda não estou satisfeito com a formatação final do corpo do e-mail, mas agora é
ajuste fino.
Como não sei a tua urgência envio esta versão parcial, enquanto dou os arremates
finais na versão definitva.
PS: Não esqueça de trocar o endereço de e-mail do código, ou vai encher a minha
caixa de entrada de informações.
[ ]s
Code Snippet
Sub Envio_Email()
Conteúdo = "Cod" & vbTab & vbTab & "Data" & vbTab & vbTab & "Empresa" &
vbTab & vbTab & "Produto" & vbLf
N = Planilha.Cells(Planilha.Rows.Count, 2).End(xlUp).Row
For i = 2 To N
DataRef = CDate(Planilha.Cells(i, 2).Value)
If DataRef < Date Then
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 1)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 2)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 3)) & vbTab & vbTab
Conteúdo = Conteúdo & Trim(Planilha.Cells(i, 4)) & vbLf
End If
Next i
With myItem
.To = "adilson.soledade@hotmail.com"
.Subject = "Envio de mensagem de datas expiradas"
.Body = Conteúdo
.Save
End With
End Sub
mas como faço para enviar o email se o programa de email que está sendo utilizado nao for o outlook
express?
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 9 de 10
Estou utilizando a seguinte VBA para enviar emails com um determiado Range utilizando o Excel.
Ocorre que eu gostaria que esse envio fosse automático, ou seja, eu fixaria 02 datas no mês para ser enviado
0 o email.
Entrar
para
Votar Code Snippet
Sub Enviar_email()
ActiveSheet.Range("A3:C130").Select
ActiveWorkbook.EnvelopeVisible = True
' is sent.
With ActiveSheet.MailEnvelope
.Item.To = "fulano@email.com"
.Item.Subject = "Pagamento"
.Item.Send
End With
End Sub
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015
Enviar email pelo excel Página 10 de 10
adilsonsoledade
Aline
0
Entrar voces conseguiram fazer o arquivo funcionar?
para
Votar estou precisando montar essa formula, estou tentando usar as dicas acima, mas nao to conseguindo, nao
conhecia VBA, nao sei como inserir a formula, fiquei com duvida se tenho que indicar a posição das celulas
onde serao consideradas as datas,
poderim por favor me enviar a planilha com a formula em uso para eu ver como foi inserido?
agradeço a atenção
obrigado.
Ernandes Jr.
DreamSpark
Mais...
Brasil (Português) Boletim informativo Privacidade & cookies Termos de uso Marcas comerciais © 2015 Microsoft
https://social.msdn.microsoft.com/Forums/pt-BR/e1b192bb-9edf-4b2d-b03e-2f6b0bc... 11/09/2015