Comment envoyer un email si la date d'échéance est atteinte dans Excel ?
Comme le montre la capture d'écran ci-dessous, si la date d'échéance dans la colonne C est inférieure ou égale à 7 jours (par exemple, la date actuelle est le 13/09/2017), un email est envoyé au destinataire spécifié dans la colonne A et le contenu spécifié dans la colonne B est affiché dans le corps de l'email. Comment pouvez-vous procéder pour y parvenir ? Cet article fournit un code VBA pour vous aider à accomplir cette tâche.
Envoyer un email si la date d'échéance est atteinte avec un code VBA
Envoyer un email si la date d'échéance est atteinte avec un code VBA
Veuillez suivre les étapes ci-dessous pour envoyer un rappel par email si la date d'échéance est atteinte dans Excel.
1. Appuyez simultanément sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Dans la fenêtre Microsoft Visual Basic for Applications, veuillez cliquer sur Insérer > Module. Ensuite, copiez et collez le code VBA ci-dessous dans la fenêtre Module.
Code VBA : Envoyer un email si la date d'échéance est proche dans 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
Remarques : La ligne If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then dans le code VBA signifie que la date d'échéance doit être supérieure à 1 jour et inférieure ou égale à 7 jours. Vous pouvez la modifier selon vos besoins.
3. Appuyez sur la touche F5 pour exécuter le code. Dans la première boîte de dialogue Kutools for Excel qui apparaît, sélectionnez la plage de la colonne des dates d'échéance, puis cliquez sur le bouton OK. Voir la capture d'écran :
4. Ensuite, la deuxième boîte de dialogue Kutools for Excel apparaît, sélectionnez la plage de colonnes correspondante contenant les adresses email des destinataires, puis cliquez sur le bouton OK. Voir la capture d'écran :
5. Dans la dernière boîte de dialogue Kutools for Excel, sélectionnez le contenu que vous souhaitez afficher dans le corps de l'email, puis cliquez sur le bouton OK.
Ensuite, un email sera automatiquement créé avec le destinataire spécifié, l'objet et le corps listés si la date d'échéance dans la colonne C est inférieure ou égale à 7 jours. Veuillez cliquer sur le Envoyer pour envoyer l'email.
Remarques :
1. Chaque email créé correspond à une date d'échéance. Par exemple, s'il y a trois dates d'échéance qui répondent aux critères, trois emails seront créés automatiquement.
2. Ce code ne sera pas déclenché s'il n'y a aucune date correspondant aux critères.
3. Le code VBA ne fonctionne que lorsque vous utilisez Outlook comme programme de messagerie.

Découvrez la magie d'Excel avec Kutools AI
- Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
- Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
- Codage VBA : Écrivez et implémentez du code VBA sans effort.
- Interprétation des formules : Comprenez facilement des formules complexes.
- Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Articles connexes :
- Comment envoyer automatiquement un email en fonction de la valeur d'une cellule dans Excel ?
- Comment envoyer un email via Outlook lorsque le classeur est enregistré dans Excel ?
- Comment envoyer un email si une certaine cellule est modifiée dans Excel ?
- Comment envoyer un email si un bouton est cliqué dans Excel ?
- Comment envoyer un rappel ou une notification par email si le classeur est mis à jour dans Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !