Accéder au contenu principal

Comment envoyer automatiquement un message de salutation à un contact si c'est son anniversaire aujourd'hui dans Outlook ?

Author: Xiaoyang Last Modified: 2025-08-06

Parfois, vous pourriez vouloir envoyer automatiquement un message de salutation à un contact lorsque c'est son anniversaire aujourd'hui dans Outlook. Ce serait une tâche fastidieuse si vous deviez vérifier les anniversaires des contacts un par un et envoyer manuellement les e-mails de salutations. Dans cet article, je vais vous présenter un code VBA pour résoudre ce problème rapidement et facilement.

Envoyer automatiquement un message de salutation à un contact en fonction de son anniversaire avec un code VBA dans Outlook


Envoyer automatiquement un message de salutation à un contact en fonction de son anniversaire avec un code VBA dans Outlook

Pour envoyer automatiquement un message de salutation à un contact si c'est son anniversaire aujourd'hui, insérez d'abord un code VBA, puis vous devez créer une tâche récurrente pour déclencher le code.

Les étapes suivantes peuvent vous aider :

1. Lancez Outlook, puis maintenez enfoncées les touches ALT + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.

2. Dans la fenêtre Microsoft Visual Basic for Applications, double-cliquez sur ThisOutlookSession dans le volet Project1(VbaProject.OTM) pour ouvrir le module, puis copiez et collez le code suivant dans le module vide.

Code VBA : Envoi automatique d'un message de salutation à un contact en fonction de son anniversaire :

Private Sub Application_Reminder(ByVal Item As Object)
Dim xTempMail As MailItem
Dim xFilePath As String
Dim xItems As Outlook.Items
Dim xItem As Object
Dim xContactItem As Outlook.ContactItem
Dim xTodayDate As String
Dim xBirthdayDate As String
Dim xGreetingMail As Outlook.MailItem
Dim xWordDoc As Word.Document
Dim xGreetings As String
Dim xBool As Boolean
xFilePath = CreateObject("shell.Application").NameSpace(5).self.Path & "\UserTemplates"
Set xFSO = CreateObject("Scripting.FileSystemObject")
If xFSO.FolderExists(xFilePath) = False Then
    MkDir xFilePath
End If
If IsFileExists(xFilePath & "\Birthday Greeting Mail.oft") = False Then
    Set xTempMail = Outlook.CreateItem(olMailItem)
    xTempMail.SaveAs xFilePath & "\Birthday Greeting Mail.oft", olTemplate
    xTempMail.Close olDiscard
End If
If (TypeOf Item Is TaskItem) And (Item.Subject = "Send Birthday Greeting Mail") Then
xGreetings = "Happy Birthday!"
           xGreetings = InputBox("Input birthday greetings", "Kutools for Outlook", xGreetings)
   xTodayDate = Month(Date) & "-" & Day(Date)
   Set xItems = Outlook.Application.Session.GetDefaultFolder(olFolderContacts).Items
   For Each xItem In xItems
       If Not (TypeOf xItem Is ContactItem) Then Exit Sub
       Set xContactItem = xItem
       xBirthdayDate = Month(xContactItem.Birthday) & "-" & Day(xContactItem.Birthday)
       If xBirthdayDate = xTodayDate Then
           Set xGreetingMail = Outlook.Application.CreateItemFromTemplate(xFilePath & "\Birthday Greeting Mail.oft")
           Set xWordDoc = xGreetingMail.GetInspector.WordEditor
           
           xWordDoc.Range.InsertBefore "Dear " & xContactItem.LastName & Chr(10) & xGreetings & Chr(10) & Chr(10)
           With xGreetingMail
                .Recipients.Add (xContactItem.Email1Address)
                .Subject = "Happy Birthday!"
                .Display
                .Close (olSave)
                .Send
          End With
       End If
   Next
End If
End Sub
Function IsFileExists(ByVal FileName As String) As Boolean
Dim xFileSystem As Object
Set xFileSystem = CreateObject("Scripting.FileSystemObject")
If xFileSystem.FileExists(FileName) = True Then
    IsFileExists = True
Else
    IsFileExists = False
End If
End Function 
the screenshot of step about using vba to send a greeting message to a contact automatically if his birthday is today in Outlook 1

3. Cliquez ensuite sur Outils > Références dans la fenêtre Microsoft Visual Basic for Applications, dans la boîte de dialogue Références-Project1 qui s'affiche, cochez les options Microsoft Word Object Library et Microsoft Scripting Runtime dans la liste des références disponibles, voir capture d'écran :

4. Cliquez ensuite sur OK pour fermer la boîte de dialogue. Maintenant, vous devez créer une tâche pour déclencher le code VBA. Allez dans le volet Tâches, cliquez sur Nouvelle tâche pour créer une tâche :

(1.) Dans la ligne Objet, entrez comme Objet : Envoyer un courrier de vœux d'anniversaire ;

(2.) Cliquez ensuite sur Récurrence sous l'onglet Tâche ;

(3.) Dans la boîte de dialogue Récurrence de la tâche, sélectionnez Quotidien et spécifiez l'option tous les 1 jour(s) dans la section Modèle de récurrence ;

5. Cliquez ensuite sur OK pour fermer la boîte de dialogue, revenez à la fenêtre des tâches, veuillez définir un rappel pour la tâche récurrente comme le montre la capture d'écran suivante :

6. Désormais, lorsque le rappel se déclenche, la macro sera immédiatement activée. Une boîte de dialogue apparaîtra pour vous rappeler d'insérer les messages de vœux d'anniversaire comme le montre la capture d'écran suivante :

7. Cliquez ensuite sur le bouton OK, un e-mail de félicitations sera envoyé automatiquement au contact dont c'est l'anniversaire aujourd'hui.


Meilleurs outils de productivité pour Office

Dernière nouvelle : Kutools pour Outlook lance une version gratuite !

Découvrez le tout nouveau Kutools pour Outlook avec plus de100 fonctionnalités incroyables ! Cliquez pour télécharger dès maintenant !

🤖 Kutools IA : Utilise une technologie avancée d’intelligence artificielle pour gérer vos emails en toute simplicité, notamment répondre, résumer, optimiser, étendre, traduire et rédiger des emails.

📧 Automatisation des emails : Réponse automatique (disponible pour POP et IMAP) / Programmation de l’envoi des emails / CC/BCC automatique selon des règles lors de l’envoi / Transfert automatique (Règle avancée) / Ajout automatique de la salutation / Fractionnement automatique des emails multi-destinataires en messages individuels...

📨 Gestion des emails : Rappeler les emails / Bloquer les emails frauduleux par sujet et autres critères / Supprimer les emails en double / Recherche Avancée / Organiser les dossiers...

📁 Pièces jointes Pro:Enregistrer par lot / Détachement par lot / Compression par lot / Enregistrer automatiquement/ Détachement automatique/Compression automatique...

🌟 Magie de l’interface : 😊Davantage d’emojis beaux et sympas / Recevez une alerte en cas d’email important / Réduisez Outlook au lieu de le fermer...

👍 Fonctions en un clic : Répondre à tous avec pièces jointes / Anti-phishing emails / 🕘Afficher le fuseau horaire de l’expéditeur...

👩🏼‍🤝‍👩🏻 Contacts & Calendrier: Ajouter des contacts en lot à partir des emails sélectionnés / Diviser un groupe de contacts en groupes individuels / Supprimer le rappel d’anniversaire...

Utilisez Kutools dans la langue de votre choix– prend en charge l’anglais, l’espagnol, l’allemand, le français, le chinois, et plus de40 autres langues !

Débloquez instantanément Kutools pour Outlook en un seul clic. N’attendez plus, téléchargez maintenant et augmentez votre productivité !

kutools for outlook features1 kutools for outlook features2