Comment imprimer automatiquement les pièces jointes lorsque des emails arrivent dans Outlook ?
Ce tutoriel présente une méthode pour combiner un script VBA et une règle Outlook afin de vous aider à imprimer automatiquement les pièces jointes de certains emails lorsqu'ils arrivent dans Outlook.
Imprimer automatiquement les pièces jointes lorsque certains emails arrivent
Supposons que vous souhaitiez imprimer automatiquement les pièces jointes des emails entrants provenant d'un expéditeur spécifique. Vous pouvez procéder comme suit pour y parvenir.
Étape 1 : Créer un script dans Outlook
Tout d'abord, vous devez créer un script VBA dans Outlook.
1. Lancez votre Outlook, appuyez simultanément sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.
2. Dans la fenêtre Microsoft Visual Basic for 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 de code.

Code VBA 1 : Imprimer automatiquement les pièces jointes (tous types de pièces jointes) lorsque des emails arrivent
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 prend en charge l'impression de tous les types de pièces jointes reçues dans les emails. Si vous souhaitez imprimer uniquement un type spécifique de pièce jointe, comme les fichiers PDF, veuillez appliquer le code VBA suivant.
Code VBA 2 : Imprimer automatiquement le type spécifié de pièces jointes lorsque des emails arrivent
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'affiche, cochez la case Microsoft Scripting Runtime, puis cliquez sur le bouton OK.

4. Enregistrez le code et appuyez sur les touches Alt + Q pour fermer la fenêtre Microsoft Visual Basic for 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 indiquées ci-dessous.

Étape 2 : Créer une règle pour utiliser le script
Après avoir ajouté le script VBA dans Outlook, vous devez créer une règle pour utiliser le script en fonction de certaines conditions.
1. Allez dans l'onglet Accueil, cliquez sur Règles > Gérer les règles et 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.
Conseil : Si vous avez ajouté plusieurs comptes email à votre Outlook, spécifiez un compte dans la liste déroulante Appliquer les modifications à ce dossier où vous souhaitez appliquer la règle. Sinon, elle sera appliquée à la boîte de réception du compte email actuellement sélectionné.

3. Dans la première boîte de dialogue Assistant de règle, sélectionnez Appliquer une règle aux messages que je reçois dans la section É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, vous devez configurer comme suit.

Conseil : Si l'option « exécuter un script » est manquante dans votre Assistant de règle, vous pouvez l'afficher en suivant la méthode mentionnée dans cet article : restaurer l'option manquante Exécuter un script dans la règle Outlook.
6. Une autre boîte de dialogue Assistant de règle apparaît ensuite, demandant des exceptions. Vous pouvez sélectionner les exceptions si nécessaire, sinon, cliquez sur le bouton Suivant sans aucune sélection.

7. Dans la dernière boîte de dialogue Assistant de règle, vous devez spécifier un nom pour la règle, puis cliquer sur le bouton Terminer.

8. Vous revenez ensuite à la boîte de dialogue Règles et alertes, vous pouvez voir la règle que vous avez créée listée à l'intérieur, cliquez sur le bouton OK pour terminer tous les paramètres.

Désormais, lorsque vous recevrez un email de la personne spécifiée, les fichiers joints seront imprimés automatiquement.
Articles connexes
Imprimer uniquement les pièces jointes d'un email ou d'emails sélectionnés dans Outlook
Dans Outlook, vous pouvez imprimer les emails, mais avez-vous déjà imprimé uniquement les pièces jointes d'un seul email ou d'emails sélectionnés dans Outlook ? Cet article présente des astuces pour résoudre cette tâche.
Imprimer uniquement l'en-tête d'un email dans Outlook
Lorsque vous imprimez un email dans Outlook, il imprime à la fois l'en-tête et le corps du message. Cependant, dans certains cas particuliers, vous pourriez avoir besoin d'imprimer uniquement l'en-tête avec l'objet, l'expéditeur, les destinataires, etc. Cet article présentera deux solutions pour le faire.
Imprimer un calendrier dans une plage de dates spécifiée/personnalisée dans Outlook
Normalement, lorsque vous imprimez un calendrier en vue mensuelle dans Outlook, il sélectionne automatiquement le mois contenant la date actuellement sélectionnée. Mais vous pourriez avoir besoin d'imprimer le calendrier dans une plage de dates personnalisée, comme 3 mois, six mois, etc. Cet article vous présentera la solution.
Imprimer un contact avec une photo dans Outlook
Normalement, la photo d’un contact ne sera pas imprimée lors de l’impression du contact dans Outlook. Mais parfois, il sera plus impressionnant d'imprimer un contact avec sa photo. Cet article présentera quelques solutions pour y parvenir.
Imprimer une sélection d'un email dans Outlook
Si vous avez reçu un message email et constaté qu'une partie spécifique du contenu de l'email doit être imprimée au lieu de tout le message, que feriez-vous ? En fait, Outlook peut vous aider à réaliser cette opération avec l'aide des navigateurs internet, tels que Firefox et Internet Explorer. Je prendrai ici les navigateurs internet comme exemple. Veuillez consulter les tutoriels ci-dessous.
Meilleurs outils de productivité pour Office
Dernière nouvelle : Kutools pour Outlook lance une version gratuite !
Découvrez le tout nouveau Kutools pour Outlook avec plus de100 fonctionnalités incroyables ! Cliquez pour télécharger dès maintenant !
📧 Automatisation des emails : Réponse automatique (disponible pour POP et IMAP) / Programmation de l’envoi des emails / CC/BCC automatique selon des règles lors de l’envoi / Transfert automatique (Règle avancée) / Ajout automatique de la salutation / Fractionnement automatique des emails multi-destinataires en messages individuels...
📨 Gestion des emails : Rappeler les emails / Bloquer les emails frauduleux par sujet et autres critères / Supprimer les emails en double / Recherche Avancée / Organiser les dossiers...
📁 Pièces jointes Pro:Enregistrer par lot / Détachement par lot / Compression par lot / Enregistrer automatiquement/ Détachement automatique/Compression automatique...
🌟 Magie de l’interface : 😊Davantage d’emojis beaux et sympas / Recevez une alerte en cas d’email important / Réduisez Outlook au lieu de le fermer...
👍 Fonctions en un clic : Répondre à tous avec pièces jointes / Anti-phishing emails / 🕘Afficher le fuseau horaire de l’expéditeur...
👩🏼🤝👩🏻 Contacts & Calendrier: Ajouter des contacts en lot à partir des emails sélectionnés / Diviser un groupe de contacts en groupes individuels / Supprimer le rappel d’anniversaire...
Utilisez Kutools dans la langue de votre choix– prend en charge l’anglais, l’espagnol, l’allemand, le français, le chinois, et plus de40 autres langues !

