Notifications
Clear all

Salvar pdf enviar por e-mail

6 Posts
2 Usuários
0 Reactions
1,701 Visualizações
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Boa noite pessoal,

Bom vamos lá, tenho uma planilha que salva um relatório em PDF a medida que os dados vão sendo atualizados (2 vezes ao dia).

Gostaria de saber se alguém tem conhecimento (mais importante, saber se isto é possível) de uma macro que possa enviar esses relatórios
para meu e-mail assim que os mesmo fossem gerados.

No caso a macro geraria o PDF e automaticamente encaminharia para meu e-mail. Seria possível? Alguém já viu ou conhece alguma solução parecida?

Consultei a pesquisa do fórum, porém não vi nenhuma solução que incluísse anexo, se não for possível anexar o e-mail pode ser na forma de texto
mesmo, o importante e ter conhecimento dos dados via email.

Desde já, obrigado!!!

Att,

 
Postado : 17/12/2014 6:34 pm
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

No caso o e-mail seria hotmail, ou seja, terei que abrir a guia na internet e fazer o login ...

 
Postado : 17/12/2014 7:01 pm
(@gamboaisrael)
Posts: 68
Trusted Member
 

Ricardo, bom dia.

Sim, é possível. Através de um objeto CDO. O artigo abaixo certamente irá lhe ajudar:

http://www.ambienteoffice.com.br/officevba/enviar_e-mail_por_vba/

Só atente-se ao fato de que, para enviar anexos, você deverá incluir a linha abaixo antes do .Send:

      .AddAttachment 'Caminho e nome completo do  arquivo a ser anexado.  

Qualquer dúvida, estamos à disposição.

Att,

 
Postado : 18/12/2014 5:55 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gamboaisrael,

Primeiro obrigado pela resposta e desculpa a demora para responder. Estou meio ocupado esses dias
mas no decorrer dessa semana irei tentar sua sugestão e darei um retorno.

Mais uma vez obrigado!

Att,

 
Postado : 21/12/2014 4:08 pm
(@gamboaisrael)
Posts: 68
Trusted Member
 

Permaneço a disposição, Ricardo.

Att,

 
Postado : 22/12/2014 7:52 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
Topic starter
 

Gamboisrael

Tentei o código abaixo, mas esta dando erro "The transport failed to connect to the server" como o página
sugeriu tentei mudar o smtp de 25 para 465 porém o mesmo erro ocorre e não consigo enviar, segue o código
caso saiba o que estou errando ...

Sub EnviarEmailCDO()
    
    Dim oMensagem As Object
    Dim oConfiguração As Object
    Dim sCorpo As String
    Dim vFields As Variant

    Set oMensagem = CreateObject("CDO.Message")
    Set oConfiguração = CreateObject("CDO.Configuration")

        oConfiguração.Load -1 'Padrões CDO
        Set vFields = oConfiguração.Fields
        With vFields
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
            
            'Se quiser enviar um e-mail pelo Windows Live:
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.live.com"

            'Se quiser enviar um e-mail pelo Yahoo, substiua a linha acima por:
            '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver")= " smtp.mail.yahoo.com"

            'Se quiser enviar um e-mail pelo GMail, substiua a linha acima por:
            '.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com"

            .Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 465
            .Item("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
            
            'Abaixo você preencherá o nome do usuário. Se o seu e-mail é @hotmail, @xbox, @live,
            '@msn ou outros serviços associados à Windows Live, é necessário que você preencha
            'o seu endereço completo no campo abaixo.
            'Se você usa GMail, você deve suprimir o @gmail.com e no campo abaixo deixar apenas
            'o nome do usuário.
            'Em relação ao Yahoo, não testei porque não possuo uma conta. No entanto, provavelmente
            'é necessário especificar o endereço de e-mail completo uma vez que o Yahoo possui variações
            'como @yahoo.com, @yahoo.com.br, @yahoo.co.uk, entre outros.
            .Item("http://schemas.microsoft.com/cdo/configuration/sendusername") = "ricardo_07_9@hotmail.com"
            .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = ""
            .Update
        End With

    sCorpo = "Olá mundo!" & vbNewLine & _
      vbNewLine & _
      "Esta é a linha 1." & vbNewLine & _
      "Esta é a linha 2." & vbNewLine & _
      "Esta é a linha 3." & vbNewLine & _
      "Esta é a linha 4." & vbNewLine
      
    With oMensagem
        Set .Configuration = oConfiguração
        .To = "ricardo_07_9@hotmail.com" 'mude aqui para alterar o destinatário
        .CC = "" 'com cópia
        .BCC = "" 'com cópia oculta
        .From = """Benzadeus"" <ricardo_07_9@hotmail.com>"
        .Subject = "Resultados Operacionais"
        .TextBody = sCorpo
        .AddAttachment = "D:Resultados-Operacional"
        .Send
    End With
End Sub

OBS: Deixei sem senha apenas aqui no post.

Att,

 
Postado : 26/12/2014 7:59 am