CodeSelf Management

Pour ne pas oublier de joindre une pièce à un message (Outlook)

N’oubliez-vous jamais de joindre les pièces dont vous parlez dans l’e-mail que vous venez d’envoyer, sans même parfois s’en rendre compte ? En tous cas, moi ça m’arrive régulièrement…

Un de mes collègues a eu cette idée géniale de relever ce point et de ce dire qu’on pourrait écrire une macro Outlook qui permettrait d’alerter l’utilisateur avant l’envoi d’un mail si le corps du message contient des mots tels que « pièce jointe » ou « attachments » et si le message n’a pas de pièce jointe.

J’ai donc écrit cette petite macro que vous pouvez insérer dans l’éditeur Visual Basic Application.

image001

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    ' Déclaration des variables et leurs types associés :
    Dim monMail As MailItem 'élément Message
    Dim monRecip As Recipient 'élément Destinataire
    Dim l__instr As Integer
    Dim l__strCID As String
    Dim l__number_of_attachments As Integer
 
    If TypeName(Item) = "MailItem" Then 'le traitement ne se fait que si l'élément envoyé est de type Message
        Set monMail = Item
        ' On vérifie la présence de mots clefs dans le corps du message
        ' ce nombre doit être égal à 0 si les mots clefs n'apparraissent pas :
        l__instr = InStr(1, monMail.Body, "pièce jointe", vbTextCompare) + _
        InStr(1, monMail.Body, "pièces jointes", vbTextCompare) + _
        InStr(1, monMail.Body, "attachments", vbTextCompare) + _
        InStr(1, monMail.Body, "attachment", vbTextCompare) + _
        InStr(1, monMail.Body, "ci-joint", vbTextCompare)
 
        ' initialisation du nombre total de pièces jointes
        ' (pièces attachées + pièces dans le corps du message (images))
        l__number_of_attachments = monMail.Attachments.Count
        For Each l__attach In monMail.Attachments
            If InStr(1, monMail.HTMLBody, "cid:" & l__attach.FileName, vbTextCompare) > 0 Then
                ' si le nom de la pièce jointe apparaît dans le corps du message, il ne s'agit pas d'une vraie pièce jointe
                ' la signature peut par exemple contenir des images
                ' si c'est le cas, on retranche le nombre de vraies pièces jointes de 1 :
                l__number_of_attachments = l__number_of_attachments - 1
            End If
        Next
 
        ' si on a un mot clef et si on n'a pas de pièce jointe :
        If l__instr > 0 And l__number_of_attachments <= 0 Then
            ' on affiche une fenêtre d'alerte et de confirmationd d'envoi.
            l__answer = MsgBox("Attention, message sans pièce jointe, voulez-vous continuer ?", vbQuestion + vbYesNo)
            If l__answer = vbNo Then
                ' si la réponse est "non" :
                Cancel = True 'annulation de l'envoi
            End If
        End If
    End If
End Sub

Pour l’installer, dans Outlook (testé uniquement sur 2007), tapez Alt+F11 (ça ouvre l’éditeur VBA), puis collez ce code dans le « ThisOutlookSession ».

Related Posts with Thumbnails

Un commentaire

  1. [...] This post was mentioned on Twitter by whiblog, whiblog. whiblog said: Pour ne pas oublier de joindre une pièce à un message (Outlook) http://bit.ly/aZVFsG [...]

Laisser une réponse

Connect with Facebook