Notifications
Clear all

Enviar e-mail automaticamente baseado nos dados da planilha

8 Posts
2 Usuários
0 Reactions
1,406 Visualizações
(@dyego-vn)
Posts: 35
Eminent Member
Topic starter
 

Bom dia,

estou com uma planilha onde há uma relação de projetos. Eu tenho entre muitos dados a data contratual (quando ela deve ser entregue) e tenho uma coluna que calcula quantos dias faltam para chegar a data contratual, ou seja, chegar ao prazo de entrega (a data de hoje menos a data de entrega).

Eu preciso que ao chegar em 15 dias para o término do prazo a planilha envie automaticamente um e-mail para algumas pessoas alertando que falta 'x' dias para o prazo de entrega, até o dia do término do prazo (14 dias,13 dias, e por aí e vai ...). Eu encontrei algumas coisas fazendo pesquisas mas apenas se eu mudasse manualmente, não automaticamente com formulas. Não tenho muito conhecimento de VBA, apenas o basicão.

Se conseguirem ajudar ficarei muitissimo grato. :D

Atenciosamente,
Dyego

 
Postado : 26/10/2015 5:49 am
(@dyego-vn)
Posts: 35
Eminent Member
Topic starter
 

Fiz um exemplo simples para quem puder ajudar. Sendo que no arquivo original são mais de 300 linhas.
Não consegui editar o post para postar o anexo, também vai uma correção, a fórmula citada "(a data de hoje menos a data de entrega)" na verdade é ao contrário.

Segue o anexo.

Ty =]

 
Postado : 26/10/2015 7:56 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

dyego.vn,

Bom dia!

Fiz um pequeno exemplo de como enviar email automaticamente de acordo com a quantidade de dias existente na planilha, conforme você necessita.

Para disparar os email's você só precisa abrir o arquivo. quando ele é aberto, o código VBA faz uma varredura em toda a planilha, verifica na coluna D quem tem 15 ou menos dias e emite um email para o email do destinatário correspondente cujo email está também relacionado na coluna correspondente.

Com relação à data de hoje (26/10/2015, observe que temos 4 pessoas que serão encaminhados email. Antes de executar esse arquivo, desabilite as macros quando abrir o arquivo e modifique os email desses quatro destinatários para os quais serão enviados email de modo a lhe permitir fazer um teste. Você pode colocar, por exemplo, em todos eles, seu próprio email para que você receba os arquivos e veja a consistência das mensagens enviadas.

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 : 26/10/2015 8:56 am
(@dyego-vn)
Posts: 35
Eminent Member
Topic starter
 

Wagner, muito obrigado pela ajuda. Eu acho que entendi o código, mas não está enviando para meu e-mail quando abro a planilha.

Coloquei em objCDOSYSMail.To = "meu e-mail" mas não está enviando.

E uma dúvida referente a esse código: SEMPRE que eu abrir vai enviar um e-mail? Pois eu queria que enviasse apenas uma vez ao dia, pois a planilha é fechada e aberta várias vezes aos dia.

Obrigado pela disposição!

 
Postado : 26/10/2015 9:38 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

dyego.vn,

Com relação ao não envio de email, acredito que é porque você não configurou adequadamente para o seu tipo de email (a culpa é minha. Não lhe informei). Veja, na linha onde consta:

objCDOSYSCon.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "correio.intra.bnb"

que o valor correio.intra.bnb é correspondente ao servidor de correio aqui do meu trabalho. Para o seu, você deve configurar de acordo com o que é pra ser. Eu não sei quais são as configurações para outros servidores. Você pode botar no google "CDO - VBA configurações" e ver as mensagens que surgem sobre as configurações. Um bom exemplo está no link http://www.usandoaccess.com.br/tutoriai ... s.asp?id=1.

Quanto a questão de executar assim que a planilha abre, consertei esse problema (uma vez que a planilha pode ser aberta várias vezes no dia). Agora, quando o arquivo é aberto, o código checa, na célula "Z1" se a data que está lá registrada é igual a data do dia (a do relógio do micro). Se for igual não são emitidos email's. Essa data é registrada na célula Z1 assim que ele envia, a primeira vez, os primeiros email's. Desse modo, no dia seguinte, quando o código ler a célula Z1 e comparar com a data do micro e ver que são diferentes, ele executa a rotina de envio de email's e grava em Z1 a nova data.

Pintei a coluna Z toda com fonte na cor BRANCA e ocultei toda a coluna para que não seja impressa em caso de necessidade de impressão da planilha.

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 : 26/10/2015 10:27 am
(@dyego-vn)
Posts: 35
Eminent Member
Topic starter
 

Wagner,

eu peguei o código que você passou e dei uma modificada para ficar do jeito que eu queria. Na planilha que você passou funcionou perfeitamente.
Peguei o codigo, copiei e colei na minha, trocando só os endereços das linhas e colunas, e não envia o e-mail :cry:

Tô quebrando a cabeça aqui. Aparece a mensagem de que foi enviado, mas não chega a enviar para o e-mail, já na planilha que você mandou, com minha modificações, envia. Sabe o que pode ser ? Tem alguma coisa nas configurações da planilha que não permitem eu usar isso ?

 
Postado : 26/10/2015 11:34 am
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

dyego.vn,

Que eu saiba... não!

Me mande a sua planilha já com as adaptações feitas. Assim, posso testar e ver se tem algo errado.

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 : 26/10/2015 12:52 pm
(@dyego-vn)
Posts: 35
Eminent Member
Topic starter
 

Wagner,

consegui resolver. Suas dicas ajudaram demaaais !

Muito obrigado!

 
Postado : 27/10/2015 9:34 am