Notifications
Clear all

Envio de Email automatico direto do Excel

6 Posts
2 Usuários
0 Reactions
1,528 Visualizações
(@begidio)
Posts: 14
Active Member
Topic starter
 

B oa tarde!!!

Estou com um problema em meu trabalho. tenho que criar um código em vb ou macro onde em determinada hora informada, é disparado um e-mail para mais de um remetente contendo um anexo e comentado o body(corpo do e-mail). isso de forma automática.

Ex:
Hora atua 10:10:00 Hora de disparo do e-mail 11:00:00 arquivo anexo: c:/meu computador/test.xlsm remetente test1@test;test2@test;test3@test;test4@test etc...
assunto do e-mail: "RELATÓRIO TEST"
body(corpo do e-mail) bom dia! segue em anexo relatório "test".

assim todo dia que o hora atual atingir o hora de disparo ele automaticamente envia para minha lista de remetente o e-mail com o anexo, o campo assunto e o corpo do e-mail.

Por favor me ajude.

abraço!

Thiago Begidio
Analista de planejamento Na empresa Unitono contact center -SBC -Sp

 
Postado : 03/05/2016 1:15 pm
(@begidio)
Posts: 14
Active Member
Topic starter
 

Consegui elaborar um código. porem não consegui introduzir um horário especifico para o envio do relatório.

ex. enviar relatório 10:00:00 hora atual(sendo sempre atualizada) 09:20:00

quando atinge a hora especificada ele envia para a lista de remetente com assunto e anexo e comentário do corpo do e-mail.

segue ate onde eu consegui. creio que é algo relacionado a o comando .send para um horário especifico conforme hora corrente.

segue code.

Sub ENVIAR_EMAIL_ADD_PLANILHA()
Dim MyOlapp As Object, MeuItem As Object
Set MyOlapp = CreateObject("Outlook.Application")
Set MeuItem = MyOlapp.CreateItem(olMailItem)
With MeuItem
    .to = ("test@test11;test@test2;test@test3;test@test4")
    .Subject = "relatorio xxxx"
    .Body = "Caros," & Plan1.[d1].Value & vbCrLf & _
    vbCrLf & _
    vbCrLf & _
           "Estamos enviando em anexo o relatorio:" & vbCrLf & _
           "xxxxxxx " & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
vbCrLf & _
           "Qualquer Dúvida, estamos a disposição!" & vbCrLf & _
           Plan1.[D2].Value
    .Attachments.Add "c:meu computadorrelatorio.xlsx"
    .send 
End With
End Sub

Thiago Begidio
Analista de planejamento Na empresa Unitono contact center -SBC -Sp

 
Postado : 03/05/2016 1:47 pm
(@begidio)
Posts: 14
Active Member
Topic starter
 

detalhe o envio deve ser de forma automática conforme horário estabelecido. sem necessidade de eu clicar ou digitar nada. agradeço a atenção meus caros!

Thiago Begidio
Analista de planejamento Na empresa Unitono contact center -SBC -Sp

 
Postado : 03/05/2016 1:49 pm
Basole
(@basole)
Posts: 487
Reputable Member
 

Segue sugestao de timer para ativar sua macro.
Chame as duas ao msm tempo, a 1ª ativará as 11h e a segunda desativará a acao as 11h e 1 minuto.

Dim RunWhen, cRunWhat
Sub StartTimer()
    RunWhen = TimeValue("11:00:00")
    cRunWhat = "ENVIAR_EMAIL_ADD_PLANILHA"
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
                       Schedule:=True
End Sub
Sub StopTimer()
    RunWhen = RunWhen + TimeValue("00:01:00")
    cRunWhat = "ENVIAR_EMAIL_ADD_PLANILHA"
    On Error Resume Next
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=False
End Sub

Click em se a resposta foi util!

 
Postado : 03/05/2016 3:23 pm
(@begidio)
Posts: 14
Active Member
Topic starter
 

Ajudou muito Basole! Obrigado pela dica!!

Thiago Begidio
Analista de planejamento Na empresa Unitono contact center -SBC -Sp

 
Postado : 03/05/2016 3:35 pm
(@begidio)
Posts: 14
Active Member
Topic starter
 

Segue sugestao de timer para ativar sua macro.
Chame as duas ao msm tempo, a 1ª ativará as 11h e a segunda desativará a acao as 11h e 1 minuto.

Dim RunWhen, cRunWhat
Sub StartTimer()
    RunWhen = TimeValue("11:00:00")
    cRunWhat = "ENVIAR_EMAIL_ADD_PLANILHA"
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
                       Schedule:=True
End Sub
Sub StopTimer()
    RunWhen = RunWhen + TimeValue("00:01:00")
    cRunWhat = "ENVIAR_EMAIL_ADD_PLANILHA"
    On Error Resume Next
    Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
        Schedule:=False
End Sub

Boaa!

Thiago Begidio
Analista de planejamento Na empresa Unitono contact center -SBC -Sp

 
Postado : 03/05/2016 3:35 pm