VBA Outlook : Marquer un e-mail comme lu

VBA - Visual Basic for Application

La folie quotidienne du courrier électronique peut parfois être épuisante. Il est donc bon de pouvoir simplifier et automatiser son travail grâce à quelques macros VBA. Un cas d’utilisation pourrait être que vous avez marqué un ou plusieurs courriels et que vous souhaitez les marquer comme lus en une seule fois à l’aide d’un code VBA.

Ce cas d’utilisation se produira rarement “seul”. Dans la plupart des cas, il sera utilisé en conjonction avec d’autres macros, par exemple si vous souhaitez marquer des courriers électroniques comme lus et les déplacer automatiquement dans un autre dossier. Ou si vous souhaitez répondre automatiquement à un courriel à l’aide d’une macro VBA, puis le marquer comme lu.

Macro marquer un e-mail comme lu

Dans l’image suivante et le code inséré, nous pouvons déjà voir à quel point le code est petit et discret.

Capture d'écran de l'éditeur VBA avec la macro qui marque l'e-mail comme lu
Code VBA pour marquer l’e-mail comme lu
Option Explicit
'marquer les messages sélectionnés comme lus
Sub MarkMsgAsRead()
    Dim olItem As Outlook.MailItem
    
    For Each olItem In Application.ActiveExplorer.Selection
        olItem.UnRead = False
    Next olItem
    
End Sub

Il existe donc une méthode MarkMsgAsRead qui peut être exécutée à partir d’Outlook en tant que macro. Dans la méthode, un olItem (abréviation de outlookItem) est défini comme un MailItem. Dans une boucle For-Each, tous les courriels sélectionnés dans la boîte de réception sont ensuite parcourus. Pour marquer le MailItem comme lu, la propriété “UnRead” doit recevoir la valeur “False”.

Macro : marquer un courriel comme non lu

Bien entendu, l’opération fonctionne également en sens inverse, de sorte que vous pouvez marquer comme non lus des courriels qui ont déjà été marqués comme lus. Pour ce faire, il suffit de définir la propriété “UnRead” sur “True”.

Option Explicit
'marquer les messages sélectionnés comme non lus
Sub MarkMsgAsUnRead()
    Dim olItem As Outlook.MailItem
    
    For Each olItem In Application.ActiveExplorer.Selection
        olItem.UnRead = True
    Next olItem
    
End Sub

Note

Une dernière remarque : si vous obtenez des messages d’erreur la première fois que vous exécutez le code, vérifiez simplement que vous avez sélectionné les bonnes références/bibliothèques. Celles-ci se trouvent dans le menu sous Outils ➔ Références.

Capture d'écran des références nécessaires dans l'éditeur VBA
Capture d’écran des références nécessaires dans l’éditeur VBA

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *