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
