Enviar e-mail Excel VBA – Planilha de Aniversário para download

Enviar e-mail Excel VBA – Planilha de Aniversário para download

O Excel permite coisas incríveis! Por exemplo enviar e-mail no Excel usando VBA. Neste artigo você verá como enviar e-mail pelo Excel usando VBA e um exemplo de uma planilha de aniversário construída pelo Guia do Excel e que você poderá realizar o download, e totalmente desbloqueada.

Painel envio de e-mail Excel

Enviar e-mail Excel VBA - Planilha de Aniversário

No painel você tem acesso rápido ao sistema de envio de email pelo Excel com VBA.

  1. Configuração: Abre a planilha de configuração do e-mail de envio. Nela são inseridas informações da conta SMTP para envio do e-mail.
  2. Lista: Abre a planilha dos aniversariantes, esta contém a lista dos e-mails destinatários.
  3. Período e Enviar: No período são definidos o período dos aniversariantes para os quais serão enviados e-mails e no botão Enviar são enviados os e-mails automaticamente pelo Excel usando VBA.

Configuração enviar e-mail

Enviar e-mail Excel VBA - Planilha de Aniversário

Na planilha de configuração de e-mail você tem todas irá realizar as configurações do SMTP e também a mensagem que será enviada.

  1. SMTP: Inclua o SMTP da sua conta de e-mail. No caso do gmail é smtp.gmail.com.
  2. PORT: Porta do SMTP da conta de e-mail de envio.
  3. AUTENTICAR: Selecione Sim para autenticar o SMTP ou Não para não autenticar o SMTP.
  4. NOME: Nome do remetente do e-mail.
  5. EMPRESA: Nome da empresa d oenvio do e-mail.
  6. EMAIL: E-mail do remetente, coloque o e-mail completo.
  7. SENHA: Digite a senha do seu e-mail.
  8. SMTP SSL: Marque Sim se sua conta de e-mail possuir autenticação de SSL e Não se não tiver.
  9. TÍTULO: Digite o título dos e-mails enviados.
  10. CÓPIA E-MAIL: Se quiser que sejam enviadas cópias de e-mail para outro destinatário apenas digite o e-mail.
  11. MENSAGEM: Digite a mensagem que gostaria de enviar. Você pode enviar em HTML inclusive usando um editor HTML Online, por exemplo: http://www.comofazerumsite.com/editor-html-online/. Veja o vídeo de como usar facilmente.

LISTA DE E-MAILS PARA ENVIO

Enviar e-mail Excel VBA - Planilha de Aniversário

Na lista de e-mails para envio preencha o nome do cliente, a data de nascimento e o seu e-mail.

Estes dados serão utilizados para personalizar a mensagem colocando o nome do cliente no título do e-mail, filtrar os e-mails a serem enviados pela data de aniversário definida no período no Painel e o e-mail de cada cliente para o envio da mensagem.

CÓDIGO FONTE VBA PARA ENVIAR E-MAIL PELO EXCEL VBA

Abaixo o código fonte VBA utilizado para o envio de e-mails utilizando o Excel.

Não esqueça de marcar a referência Microsoft CDO for Windows 2000 Library conforme explicado no vídeo deste artigo.

'Baseado no código disponibilizado em: http://www.a1vbcode.com/snippet-3691.asp
Public Sub lsEnviar()
    Dim iMsg, iConf, Flds
    Dim lUltimaLinhaAtiva   As Long
    Dim lLinha              As Long
    Dim lPeriodoIni         As Date
    Dim lPeriodoFim         As Date
    Dim lAniversario        As Date
 
    Application.ScreenUpdating = False
 
    lUltimaLinhaAtiva = Worksheets("Lista").Cells(Worksheets("Lista").Rows.Count, 1).End(xlUp).Row
 
    'Seta as variáveis, lembrando que o objeto Microsoft CDO deverá estar habilitado em Ferramentas->Referências->Microsoft CDO for Windows 2000 Library
    Set iMsg = CreateObject("CDO.Message")
    Set iConf = CreateObject("CDO.Configuration")
    Set Flds = iConf.Fields
 
    'Configura o componente de envio de email
    schema = "http://schemas.microsoft.com/cdo/configuration/"
    Flds.Item(schema & "sendusing") = 2
    'Configura o smtp
    Flds.Item(schema & "smtpserver") = Range("smtp").Value
    'Configura a porta de envio de email
    Flds.Item(schema & "smtpserverport") = Range("port").Value
    Flds.Item(schema & "smtpauthenticate") = IIf(Range("Autenticar").Value = "Sim", 1, 0)
    'Configura o email do remetente
    Flds.Item(schema & "sendusername") = Range("email").Value
    'Configura a senha do email remetente
    Flds.Item(schema & "sendpassword") = Range("senha").Value
    Flds.Item(schema & "smtpusessl") = IIf(Range("SSL").Value = "Sim", 1, 0)
    Flds.Update
            
    For lLinha = 2 To lUltimaLinhaAtiva
        lPeriodoIni = Range("PerIni").Value
        lPeriodoFim = Range("PerFim").Value
        lAniversario = Sheets("Lista").Range("B" & lLinha).Value
        
        If (Month(lAniversario) >= Month(lPeriodoIni) And Day(lAniversario) >= Day(lPeriodoIni)) _
            And (Month(lAniversario) <= Month(lPeriodoFim) And Day(lAniversario) <= Day(lPeriodoFim)) Then
            With iMsg
                'Email do destinatário
                .To = Sheets("Lista").Range("C" & lLinha).Value
                'Seu email
                .From = Range("email").Value
                'Cópia do e-mail
                .CC = Range("copia").Value
                'Título do email
                .Subject = Range("titulo").Value & " " & Sheets("Lista").Range("A" & lLinha).Value
                'Mensagem do e-mail, você pode enviar formatado em HTML
                .HTMLBody = Range("Mensagem").Value
                'Seu nome ou apelido
                .Sender = Range("Nome").Value
                'Nome da sua organização
                .Organization = Range("Empresa").Value
                'email de responder para
                .ReplyTo = Range("email").Value
                'Anexo a ser enviado na mensagem
                '.AddAttachment ("c:\rieper\Dicas VBA.docx")
                'Passa a configuração para o objeto CDO
                Set .Configuration = iConf
                'Envia o email
                .Send
            End With
        End If
    Next lLinha
    
    'Limpa as variáveis
    Set iMsg = Nothing
    Set iConf = Nothing
    Set Flds = Nothing
    
    Application.ScreenUpdating = True
    
    MsgBox "E-mails enviados!"
End Sub
Baixe a planilha

Abraço

Marcos Rieper

Curso Excel Completo – Do Básico ao VBA

Quer aprender Excel do Básico, passando pela Avançado e chegando no VBA? Clique na imagem abaixo:


Marcos Rieper

Pai, marido, professor e consultor em Excel.

Obrigado por ler este artigo, este blog foi criado para difundir o conhecimento em Excel à todos.

Divulgamos novos artigos nas redes sociais, basta clicar nos ícones abaixo.

Excel não precisa ser complicado

Assine nossa newsletter e receba dicas práticas para dominar o excel