none
Excel RRS feed

  • Discussão Geral

  • Bom dia gente :)

    Estou a trabalhar muito com Excel, ando a fazer várias ficheiros automizados, para que não possa perder muito tipo com alguns assuntos... De momento ainda tenho um ficheiro que já ando a trabalhar já algum tempo que me está a dar a volta à cabeça...

    É o seguinte, eu quero um determinado ficheiro Excel mande um e-mail automaticamente sem que eu precise de o abrir toda a vez que uma determinada formatação condicional de altere... Eu não sei se isto é possível fazer, mas se alguém souber de alguma ideia por favor diga-me!

    Até mais :)  

    terça-feira, 26 de agosto de 2014 09:47

Todas as Respostas

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

    Sem Usar o Outlook

    O objeto CDO (vem do CDOSYS) é útil quando se deseja enviar um e-mail sem usar o Outlook ou qualquer outro programa cliente de e-mails. Além disso, não interessa a versão do Office que você está usando, você pode mandar uma Planilha ou Intervalo no corpo do e-mail, você pode anexar qualquer arquivo que quiser, e não há aviso de segurança, ótimo para quando se deseja enviar e-mails num laço.

    Obviamente, para enviar uma mensagem de e-mail, por exemplo, pelo GMail, você deve ter uma conta no Gmail.

    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") = 25
                .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") = "felipebenza@hotmail.com"
                .Item("http://schemas.microsoft.com/cdo/configuration/sendpassword") = "SuaSenha"
                .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 = "destinatario@email.com" 'mude aqui para alterar o destinatário
            .CC = "" 'com cópia
            .BCC = "" 'com cópia oculta
            .From = """Benzadeus"" <benzadeus3@ambienteoffice.com.br>"
            .Subject = "Assunto do e-mail"
            .TextBody = sCorpo
            .Send
        End With
    End Sub

    Se você obteve o erro The transport failed to connect to the server, experimente alterar a porta SMTP de 25 para 465.

    Se o seu provedor não for nenhum da Windows Live, GMail ou Yahoo, consulte qual é o endereço SMTP do seu provedor e substitue na configuração smtpserver do código.

    Se você não quiser nenhum assunto, não apague a linha .TextBody = sCorpo, mas substitua por .TextBody = "". Se você apagar a linha e a propriedade TextBody do objeto CDO.Message não for especificada, um erro será retornado.

    Se quiser enviar para mais de um destinatário de uma vez, em .To utilize a forma:

    .To = "dest1@email.com;dest2@email.com;dest3@email.com"


    Laercio Tersi

    terça-feira, 26 de agosto de 2014 11:03
  • O objeto CDO (vem do CDOSYS) é útil quando se deseja enviar um e-mail sem usar o Outlook ou qualquer outro programa cliente de e-mails. Além disso, não interessa a versão do Office que você está usando, você pode mandar uma Planilha ou Intervalo no corpo do e-mail, você pode anexar qualquer arquivo que quiser, e não há aviso de segurança, ótimo para quando se deseja enviar e-mails num laço.

    Obviamente, para enviar uma mensagem de e-mail, por exemplo, pelo GMail, você deve ter uma conta no Gmail.

    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"
    


    Laercio Tersi

    quinta-feira, 23 de outubro de 2014 02:21
  • Olá! Eu tinha muitas dúvidas de excel. Fiz o curso http://www.aprendum.com.br/curso-de-excel-para-negocios/ e gostei muito. Aprendi fórmulas e dicas de como trabalhar mais rápido com a ferramenta.
    sexta-feira, 6 de fevereiro de 2015 17:26