Comment imprimer automatiquement les pièces jointes dès la réception des e-mails dans Outlook ?
Ce tutoriel vous explique comment associer un script VBA à une règle Outlook pour imprimer automatiquement les pièces jointes de certains e-mails dès leur réception.
Imprimer automatiquement les pièces jointes dès la réception de certains e-mails
Imaginez que vous souhaitiez imprimer automatiquement les pièces jointes des e-mails entrants provenant d’un expéditeur spécifique. Voici la marche à suivre pour y parvenir.
Étape 1 : Créer un script dans Outlook
Commencez par créer un script VBA dans Outlook.
1. Ouvrez Outlook, puis appuyez simultanément sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.
2. Dans la fenêtre Microsoft Visual Basic pour Applications, double-cliquez sur Projet1 > Objets Microsoft Outlook > ThisOutlookSession pour ouvrir la fenêtre ThisOutlookSession (Code), puis copiez le code suivant dans cette fenêtre.

Code VBA 1 : Imprimer automatiquement les pièces jointes (tous les types de pièces jointes) dès la réception des e-mails
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xTempFolder & "\" & xAtt.FileName
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
xHtml = xItem.HTMLBody
xID = "cid:" & xCid
If InStr(xHtml, xID) > 0 Then
IsEmbeddedAttachment = True
End If
End If
End Function Remarque : Ce code permet d’imprimer tous les types de pièces jointes reçues dans les e-mails. Si vous souhaitez imprimer uniquement un type spécifique de pièce jointe, comme les fichiers PDF, utilisez le code VBA suivant.
Code VBA 2 : Imprimer automatiquement un type spécifique de pièces jointes dès la réception des e-mails
Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
Dim xFS As FileSystemObject
Dim xTempFolder As String
Dim xAtt As Attachment
Dim xShell As Object
Dim xFolder As Object, xFolderItem As Object
Dim xFileType As String, xFileName As String
On Error GoTo xError
If Item.Attachments.Count = 0 Then Exit Sub
Set xFS = New FileSystemObject
xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
If Not xFS.FolderExists(xTempFolder) Then
MkDir (xTempFolder)
End If
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.NameSpace(0)
For Each xAtt In Item.Attachments
If IsEmbeddedAttachment(xAtt) = False Then
xFileName = xAtt.FileName
xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
xFileName = xTempFolder & "\" & xFileName
Select Case xFileType
Case "pdf" 'change "pdf" to the file extension you want to print
xAtt.SaveAsFile (xFileName)
Set xFolderItem = xFolder.ParseName(xFileName)
xFolderItem.InvokeVerbEx ("print")
End Select
End If
Next xAtt
Set xFS = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
Set xShell = Nothing
xError:
If Err <> 0 Then
MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
Err.Clear
End If
Exit Sub
End Sub
Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
xHtml = xItem.HTMLBody
xID = "cid:" & xCid
If InStr(xHtml, xID) > 0 Then
IsEmbeddedAttachment = True
End If
End If
End Function
Remarques:
3. Cliquez ensuite sur Outils > Références. Dans la boîte de dialogue Références – Projet1 qui s’ouvre, cochez la case Microsoft Scripting Runtime, puis cliquez sur le bouton OK.

4. Enregistrez le code, puis appuyez sur les touches Alt + Q pour fermer la fenêtre Microsoft Visual Basic pour Applications.
Remarque : Assurez-vous que l’option Activer toutes les macros est activée dans votre Outlook. Vous pouvez vérifier cette option en suivant les étapes ci-dessous.

Étape 2 : Créer une règle pour utiliser le script
Après avoir ajouté le script VBA dans Outlook, créez une règle pour l’appliquer selon vos conditions spécifiques.
1. Accédez à l’onglet Accueil, puis cliquez sur Règles > Gérer les règles et les alertes.

2. Dans la boîte de dialogue Règles et alertes, cliquez sur le bouton Nouvelle règle pour créer une règle.
Conseils : Si vous avez ajouté plusieurs comptes e-mail à votre Outlook, veuillez spécifier un compte dans la liste déroulante du champ Appliquer les modifications à ce dossier, là où vous souhaitez appliquer la règle. Sinon, celle-ci s’appliquera à la boîte de réception du compte actuellement sélectionné.

3. Dans la première boîte de dialogue Assistant de règle, sélectionnez Appliquer la règle aux messages que je reçois dans la zone Étape 1, puis cliquez sur Suivant.

4. Dans la deuxième boîte de dialogue Assistant de règle, vous devez :

5. Dans la troisième boîte de dialogue Assistant de règle, procédez comme suit.

Conseil : Si l’option « Exécuter un script » ne figure pas dans votre Assistant de règle, vous pouvez la faire réapparaître en suivant la méthode décrite dans cet article : restaurer l’option manquante Exécuter un script dans une règle Outlook.
6. Une autre boîte de dialogue Assistant de règle s’ouvre alors pour demander des exceptions. Vous pouvez sélectionner des exceptions si nécessaire ; sinon, cliquez sur le bouton Suivant sans effectuer de sélection.

7. Dans la dernière boîte de dialogue Assistant de règle, attribuez un nom à la règle, puis cliquez sur le bouton Terminer.

8. La boîte de dialogue Règles et alertes réapparaît alors. Vous pouvez voir la règle que vous avez créée dans la liste. Cliquez sur le bouton OK pour terminer toute la configuration.

Désormais, dès réception d’un e-mail provenant de la personne spécifiée, la ou les pièces jointes seront automatiquement imprimées.
Articles associés
Imprimer uniquement la ou les pièces jointes d’un seul e-mail ou de plusieurs e-mails sélectionnés dans Outlook
Dans Outlook, vous pouvez imprimer des e-mails, mais avez-vous déjà imprimé uniquement les pièces jointes d’un seul message ou de plusieurs messages sélectionnés ? Cet article vous dévoile des astuces pratiques pour accomplir cette tâche facilement.
Imprimer uniquement l’en-tête d’un message électronique dans Outlook
Lorsque vous imprimez un e-mail dans Outlook, l’en-tête et le corps du message sont imprimés ensemble. Mais dans certaines situations, vous pourriez avoir besoin d’imprimer uniquement l’en-tête — avec l’objet, l’expéditeur, les destinataires, etc. Cet article vous propose deux méthodes simples pour y parvenir.
Imprimer un calendrier sur une plage de dates personnalisée dans Outlook
Généralement, lorsque vous imprimez un calendrier en mode Mensuel dans Outlook, le mois contenant la date actuellement sélectionnée est automatiquement choisi. Toutefois, vous pourriez avoir besoin d’imprimer votre calendrier sur une période personnalisée — par exemple, trois mois, un semestre ou toute autre plage de dates. Cet article vous propose une solution simple et efficace pour y parvenir.
Imprimer un contact avec sa photo dans Outlook
Par défaut, la photo d’un contact n’est pas incluse lors de son impression dans Outlook. Pourtant, il peut parfois s’avérer utile — voire indispensable — d’imprimer un contact accompagné de sa photo. Découvrez dans cet article quelques solutions alternatives pour y parvenir facilement.
Imprimer une sélection d’un e-mail dans Outlook
Vous recevez un message électronique et vous avez besoin d’imprimer uniquement une partie précise du contenu, sans imprimer tout le message ? En réalité, Outlook permet d’effectuer cette opération à l’aide de navigateurs Internet tels que Firefox ou Internet Explorer. Je vais prendre ces navigateurs comme exemple. Consultez les tutoriels suivants.
Meilleurs outils de productivité Office
Découvrez la toute nouvelle Kutools pour Outlook avec 100+ fonctionnalités incroyables !Cliquez pour télécharger dès maintenant !
📧Automatisation des e-mails : Réponse automatique (disponible pour POP et IMAP) / Planification de l’envoi d’e-mails / CC/BCC automatique selon des règles lors de l’envoi d’e-mails / Transfert automatique (règle avancée) / Ajout automatique de formules de politesse / Division automatique des e-mails à plusieurs destinataires en messages individuels...
📨Gestion des e-mails : Rappeler un e-mail / Bloquer les e-mails frauduleux par objet et autres critères / Supprimer les e-mails en double / Recherche avancée / Organiser vos dossiers…
📁Pièces jointes Pro : Enregistrer en lot / Détacher en lot / Compresser en lot / Enregistrement automatique / Détachement automatique / Compression automatique…
🌟Magie de l’interface : 😊 Encore plus d’emojis jolis et stylés / Vous prévient à l’arrivée d’e-mails importants / Réduire Outlook au lieu de le fermer...
👍Merveilles en un clic : Répondre à tous avec pièces jointes / E-mails anti-hameçonnage / 🕘 Afficher le fuseau horaire – Heure actuelle de l’expéditeur…
👩🏼🤝👩🏻Contacts et calendrier : Créer en lot : ajouter un contact à partir des e-mails sélectionnés / Diviser un groupe de contacts en groupes individuels / Supprimer le rappel d’anniversaire…
Utilisez Kutools dans votre langue préférée – compatible avec l’anglais, l’espagnol, l’allemand, le français, le chinois et plus de 40 autres langues !


🚀 Téléchargement en un clic — Obtenez tous les compléments Office
Fortement recommandé : Kutools for Office (5-en-1)
Un seul clic pour télécharger cinq programmes d’installationen une fois —Kutools pour Excel, Outlook, Word, PowerPointet Office Tab Pro.Cliquez pour télécharger dès maintenant !
- ✅Commodité en un clic : téléchargez les cinq packs d’installation en une seule action.
- 🚀Prêt à relever toutes vos tâches Office : installez les compléments dont vous avez besoin, exactement quand vous en avez besoin.
- 🧰Inclus: Kutools pour Excel / Kutools pour Outlook / Kutools pour Word / Office Tab Pro / Kutools for PowerPoint