Par défaut la remise des messages dans Outlook est instantanée, mais si on a l’habitude de travailler en dehors des heures habituelles il est possible de différer la livraison des messages pour ne pas déranger les collègues.
Pour ne pas devoir le faire manuellement à chaque message, il est possible de l’automatiser à l’aide d’un morceau de code VBA. Ainsi dès qu’un message est envoyé après l’heure de fin de journée spécifiée celui-ci est retardé au lendemain et pour le week-end le message est même retardé jusqu’au lundi matin.
Ajout du code VBA
- Ouvrir Outlook
- Appuyer sur les touches « Alt » + « F11 » du clavier pour ouvrir la fenêtre VBA
- Double clique sur « Projet 1 » > « Microsoft Outlook Objects » > « ThisOutlookSession » pour ouvrir la fenêtre d’ajout/édition du code
- Saisir le code suivant :
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) 'Updated by Extendoffice & EWP 20230602 Const xDelayTime As String = "07:30:00" 'The delay delivery time of emails Const xCompareTime As String = "18:30:00" 'The time to enable the delay delivery option Dim xMail As Outlook.MailItem Dim xWeekday As Integer Dim xNowTime As String Dim xIsDelay As Boolean Dim xRet1 As Integer Dim xRet2 As Integer On Error GoTo xError If (Item.Class <> olMail) Then Exit Sub Set xMail = Item If xMail.Importance = olImportanceHigh Then Exit Sub 'Exclude emails with a high importance flag xWeekday = Weekday(Date, vbMonday) xNowTime = Format(Now, "hh:nn:ss") xIsDelay = False xRet1 = StrComp(xNowTime, xDelayTime) xRet2 = StrComp(xNowTime, xCompareTime) If xRet1 = xRet2 Then xIsDelay = True End If If (xRet1 = -1) And (xRet2 = -1) Then xMail.DeferredDeliveryTime = Date & " " & xDelayTime Else If ((xWeekday = 5) And xIsDelay) Or (xWeekday = 6) Or (xWeekday = 7) Then xMail.DeferredDeliveryTime = (Date + (5 - xWeekday + 3)) & " " & xDelayTime ElseIf xIsDelay Then xMail.DeferredDeliveryTime = (Date + 1) & " " & xDelayTime End If End If Exit Sub xError: MsgBox "ItemSend: " & Err.Description, , "Kutools for Outlook" End Sub
- Au besoin il faut ajuster les variables xDelayTime (heure de remise pour le lendemain) et xCompareTime (heure à partir de laquelle cela s’active)
- Sauvegarder et fermer la fenêtre VBA
Autoriser les macros
Outlook n’autorise pas les macros par défaut ce qui fait que le code ci-dessus ne fonctionnera pas, il faut donc activer les macros dans les options.
- Fichier > Options
- Centre de gestion de la confidentialité > Paramètres du Centre de gestion de la confidentialité…
- Paramètres des macros
- Cocher « Activer toutes les macros (non recommandé, exécution possible de code potentiellement dangereux) »
- Redémarrer Outlook pour que le changement soit pris en compte
Conclusion
Il est maintenant possible d’envoyer des messages à des heures de travail moins conventionnelles sans se préoccuper de savoir si on va déranger ses collègues.
Bien évidemment il est toujours possible de forcer la remise d’un message qui aurait une nécessité d’urgence. Il suffit de cliquer sur le bouton « Importante haute » dans le message puis lors de l’appui sur le bouton « Envoyer » le message sera remis tout de suite.
Dernier conseil : il est intéressant d’ajouter le champ « Différer jusqu’au » dans l’affichage de la boite d’envoi pour se souvenir au fil du temps pourquoi les messages restent dedans.
- Boite d’envoi
- Clique droit sur la barre de champs > Sélecteur de champs
- Dans la nouvelle fenêtre, sélectionner « Champs Date/Heure » au niveau du menu déroulant
- Cliquer sur « Différer jusqu’au » et le déplacer dans la barre de champs à l’emplacement souhaité
- Fermer la fenêtre de sélecteur de champs