Como enviar um e-mail se a data de vencimento for atingida no Excel?
Como mostrado na captura de tela abaixo, se a data de vencimento na coluna C for menor ou igual a 7 dias (por exemplo, a data atual é 13/9/2017), um e-mail será enviado para o destinatário especificado na coluna A e o conteúdo especificado na coluna B será exibido no corpo do e-mail. Como você pode fazer para alcançar isso? Este artigo fornece um código VBA para ajudá-lo a realizar essa tarefa.
Enviar e-mail se a data de vencimento for atingida com código VBA
Enviar e-mail se a data de vencimento for atingida com código VBA
Por favor, siga as instruções abaixo para enviar um lembrete por e-mail se a data de vencimento for atingida no Excel.
1. Pressione simultaneamente as teclas Alt + F11 para abrir a janela Microsoft Visual Basic for Applications.
2. Na janela Microsoft Visual Basic for Applications, clique em Inserir > Módulo. Em seguida, copie e cole o seguinte código VBA na janela Módulo.
Código VBA: Enviar e-mail se a data de vencimento estiver próxima no Excel
Public Sub CheckAndSendMail()
'Updated by Extendoffice 2018/11/22
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Application.InputBox("Please select the due date column:", "KuTools For Excel", , , , , , 8)
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Application.InputBox("Please select the recipients?email column:", "KuTools For Excel", , , , , , 8)
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Application.InputBox("Select the column with reminded content in your email:", "KuTools For Excel", , , , , , 8)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "<br><br>"
xMailBody = "<HTML><BODY>"
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Text : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & "</BODY></HTML>"
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub
Notas: A linha If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then no código VBA significa que a data de vencimento deve ser maior que 1 dia e menor ou igual a 7 dias. Você pode alterá-la conforme necessário.
3. Pressione a tecla F5 para executar o código. Na primeira caixa de diálogo Kutools for Excel que aparecer, selecione o intervalo da coluna da data de vencimento e clique no botão OK. Veja a captura de tela:
4. Em seguida, a segunda caixa de diálogo Kutools for Excel aparecerá, selecione o intervalo da coluna correspondente que contém os endereços de e-mail dos destinatários e clique no botão OK. Veja a captura de tela:
5. Na última caixa de diálogo Kutools for Excel, selecione o conteúdo que deseja exibir no corpo do e-mail e clique no botão OK.
Em seguida, um e-mail será criado automaticamente com o destinatário, assunto e corpo especificados listados, se a data de vencimento na coluna C for menor ou igual a 7 dias. Clique no botão Enviar para enviar o e-mail.
Notas:
1. Cada e-mail criado corresponde a uma data de vencimento. Por exemplo, se houver três datas de vencimento que atendem aos critérios, três mensagens de e-mail serão criadas automaticamente.
2. Esse código não será acionado se não houver datas que atendam aos critérios.
3. O código VBA só funcionará quando você usar o Outlook como seu programa de e-mail.

Desbloqueie a Magia do Excel com o Kutools AI
- Execução Inteligente: Realize operações de células, analise dados e crie gráficos — tudo impulsionado por comandos simples.
- Fórmulas Personalizadas: Gere fórmulas sob medida para otimizar seus fluxos de trabalho.
- Codificação VBA: Escreva e implemente código VBA sem esforço.
- Interpretação de Fórmulas: Compreenda fórmulas complexas com facilidade.
- Tradução de Texto: Supere barreiras linguísticas dentro de suas planilhas.
Artigos relacionados:
- Como enviar automaticamente um e-mail com base no valor da célula no Excel?
- Como enviar um e-mail pelo Outlook ao salvar a pasta de trabalho no Excel?
- Como enviar um e-mail se uma determinada célula for modificada no Excel?
- Como enviar um e-mail se um botão for clicado no Excel?
- Como enviar um lembrete ou notificação por e-mail se a pasta de trabalho for atualizada no Excel?
Melhores Ferramentas de Produtividade para Office
Potencialize suas habilidades no Excel com o Kutools para Excel e experimente uma eficiência sem igual. O Kutools para Excel oferece mais de300 recursos avançados para aumentar sua produtividade e economizar tempo. Clique aqui para obter o recurso que você mais precisa...
O Office Tab traz interface com abas para o Office e facilita muito o seu trabalho
- Habilite a edição e leitura com abas no Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Abra e crie vários documentos em novas abas na mesma janela, em vez de abrir novas janelas.
- Aumente sua produtividade em50% e reduza centenas de cliques do mouse todos os dias!