Bonjour à tous,
On connaît tous le problème d'envoyer un mail et d'en oublier la pièce jointe qui allait avec et de le renvoyer avec comme sujet : "C'est mieux avec".
Le but ici est de vous montrer une technique pour limiter cet oubli grâce à Outlook (et un peu de VBA).
Concrètement, on va regarder s'il existe une pièce jointe lors de l'envoi du mail, et vérifier si le corps du message contient des mots clés du genre : "PJ", "joint"....
Si vous avez une signature avec une image (en local) lors de l'envoie celle ci comptera comme une pièce jointe, il faudra donc ne pas la prendre en considération.
Voici ce que ça donnerais :
Bien sûr les mots clés restent personnalisables à souhaits
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) '*************************************************************************************** ' Auteur : MinDBuSteR ' Descriptif : Test si une pièce jointe est présente avant envoi '*************************************************************************************** Dim mail As MailItem Dim objAttachment As Attachments Dim msg As String Dim nbre_pj As Integer If Item.Class = olMail Then Set mail = Item Set objAttachment = Item.Attachments ' Récupération de la collection des pièces jointes nbre_pj = objAttachment.Count ' Calcul du nombre de pièces jointes If (nbre_pj = 1) Then ' ATTENTION à paramétrer en fonction de la signature qui compte pour une pièce jointe msg = mail.Body 'Liste des mots recherchés If(InStr(1, msg, "PJ", vbTextCompare) Or _ InStr(1, msg, "jointes", vbTextCompare) Or _ InStr(1, msg, "joint", vbTextCompare) Or _ InStr(1, msg, "jointe", vbTextCompare) Or _ InStr(1, msg, "joints", vbTextCompare)) Then If (MsgBox("Il semblerait que vous n'ayez ajouté aucune pièce jointe. Voulez-vous quand même envoyer ce message ?", vbYesNo + vbExclamation, "Attention") = vbNo) Then Cancel = True Exit Sub End If End If End If End If End Sub![]()
Partager