Accéder au contenu principal

Comment imprimer automatiquement les pièces jointes lorsque des emails arrivent dans Outlook ?

Author: Siluvia Last Modified: 2025-08-06

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.

steps of auto printing attachments when emails arrive in Outlook

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 :

1. Avant d'appliquer ce code VBA pour imprimer uniquement les fichiers PDF dans les emails entrants, vous devez d'abord télécharger et installer Adobe Acrobat Reader et le définir comme lecteur PDF par défaut sur votre ordinateur.
2. Sur la ligne Case "pdf", remplacez "pdf" par l'extension de fichier que vous souhaitez imprimer.

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.

steps of auto printing attachments when emails arrive in Outlook

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.

steps of auto printing attachments when emails arrive in Outlook
É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.

steps of auto printing attachments when emails arrive in Outlook

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é.

steps of auto printing attachments when emails arrive in Outlook

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.

steps of auto printing attachments when emails arrive in Outlook

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

4.1) Spécifier une ou plusieurs conditions dans la section Étape 1 selon vos besoins ;
Dans ce cas, je souhaite imprimer uniquement les pièces jointes des emails entrants provenant d'un expéditeur spécifique. Ici, je coche la case provenant de personnes ou groupe public.
4.2) Cliquez sur la valeur soulignée dans la section Étape 2 pour éditer la condition ;
4.3) Cliquez sur Suivant. Voir capture d'écran :
steps of auto printing attachments when emails arrive in Outlook

5. Dans la troisième boîte de dialogue Assistant de règle, vous devez configurer comme suit.

5.1) Dans la section Étape 1 : Sélectionner une ou plusieurs actions, cochez la case exécuter un script ;
5.2) Dans la section Étape 2, cliquez sur le texte souligné « un script » ;
5.3) Dans la boîte de dialogue Sélectionner un script qui s'ouvre, cliquez sur le nom du code VBA que vous avez ajouté ci-dessus, puis cliquez sur OK ;
5.4) Cliquez sur le bouton Suivant. Voir capture d'écran :
steps of auto printing attachments when emails arrive in Outlook

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.

steps of auto printing attachments when emails arrive in Outlook

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.

steps of auto printing attachments when emails arrive in Outlook

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.

steps of auto printing attachments when emails arrive in Outlook

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.

Plus d'articles sur « l'impression dans Outlook »...


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 !

🤖 Kutools IA : Utilise une technologie avancée d’intelligence artificielle pour gérer vos emails en toute simplicité, notamment répondre, résumer, optimiser, étendre, traduire et rédiger des emails.

📧 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 !

Débloquez instantanément Kutools pour Outlook en un seul clic. N’attendez plus, téléchargez maintenant et augmentez votre productivité !

kutools for outlook features1 kutools for outlook features2