Passer au contenu principal

Comment imprimer toutes les pièces jointes dans un / plusieurs e-mails dans Outlook?

Comme vous le savez, il n'imprimera que le contenu de l'e-mail tel que l'en-tête, le corps lorsque vous cliquez sur le bouton Déposez votre dernière attestation > Commercial dans Microsoft Outlook, mais n'imprimez pas les pièces jointes. Ici, nous allons vous montrer comment imprimer facilement toutes les pièces jointes d'un e-mail sélectionné dans Microsoft Outlook.


Imprimez toutes les pièces jointes dans un e-mail une par une

Microsoft Outlook nous fournit Impression rapide , qui peut vous aider à imprimer les pièces jointes dans un e-mail une par une.

1. Sélectionnez l'e-mail dont vous imprimerez les pièces jointes ultérieurement.

2. Cliquez sur une pièce jointe dans cet e-mail.

3. Clique le Impression rapide bouton dans le Actions groupe sur le Pièces jointes languette.

Noter la Outils de fixation ne sera pas activé tant que vous n'aurez pas cliqué sur les pièces jointes dans les e-mails.

4. Une boîte de dialogue d'ouverture de pièce jointe apparaît, et veuillez cliquer sur le Ouvert .

Veuillez noter que cette étape ouvrira la pièce jointe sélectionnée et imprimera cette pièce jointe sélectionnée en même temps.

Pour imprimer d'autres pièces jointes dans cet e-mail, veuillez répéter les étapes 2 à 4.

Enregistrez / exportez rapidement toutes les pièces jointes de plusieurs e-mails dans Outlook

Normalement, nous pouvons enregistrer les pièces jointes d'un e-mail en activant le Outils de fixation et en appliquant le Enregistrer toutes les pièces jointes fonctionnalité dans Outlook. Mais que se passe-t-il si vous enregistrez les pièces jointes de plusieurs e-mails ou de l’ensemble du dossier de messagerie dans Outlook ? Essayez Kutools pour Outlook Enregistrer tout (Pièces jointes).


enregistrer les pièces jointes dans plusieurs e-mails kto9

Impression par lots de toutes les pièces jointes dans un seul e-mail

S'il y a de nombreuses pièces jointes dans le même message électronique, il faudra beaucoup de temps pour les imprimer une par une. Et la méthode suivante vous guidera facilement dans l'impression par lots de toutes les pièces jointes d'un e-mail sélectionné.

1. Sélectionnez l'e-mail dont vous imprimerez les pièces jointes ultérieurement.

2. Dans Outlook 2010 ou versions ultérieures, cliquez sur le bouton Déposez votre dernière attestation > Commercial > Options d'impression. Voir la capture d'écran suivante:

3. Dans la boîte de dialogue Imprimer, veuillez cocher la case Imprimer les fichiers joints. Les pièces jointes seront imprimées sur l'imprimante par défaut uniquement option dans la Options d'impression .

4. Clique le Commercial .

5. Dans la boîte de dialogue Ouvrir une pièce jointe au courrier, cliquez sur le bouton Ouvert bouton pour continuer. (Notes: Cette boîte de dialogue apparaîtra séparément pour chaque pièce jointe.)

Désormais, toutes les pièces jointes de ce message électronique sélectionné seront imprimées en même temps.


Imprimez par lots toutes les pièces jointes et les images dans plusieurs e-mails sélectionnés

Pour imprimer toutes les pièces jointes dans plusieurs e-mails ainsi que toutes les images du corps du message dans Outlook, veuillez suivre les étapes ci-dessous pour appliquer un code VBA.

1. Dans la liste de diffusion, veuillez maintenir Ctrl or Shift touches pour sélectionner plusieurs e-mails dont vous imprimerez les pièces jointes.

2. presse autre + F11 touches ensemble pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

3. Dans la fenêtre Microsoft Visual Basic pour Applications, cliquez sur Outils > Bibliographie. Et puis vérifiez le Exécution de scripts Microsoft comme indiqué ci-dessous. Une fois terminé, cliquez sur OK.

4Cliquez sur insérer > Module, puis collez sous le code VBA dans la nouvelle fenêtre de module.

VBA: imprimer toutes les pièces jointes dans plusieurs e-mails Outlook

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/03
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        xFilePath = xTempFldPath & "\" & xAttachment.FileName
        xAttachment.SaveAsFile (xFilePath)
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

5. presse F5 ou cliquez sur la Courir bouton pour exécuter ce code VBA. Vous verrez maintenant que toutes les pièces jointes des e-mails sélectionnés et les images du corps du message sont imprimées.

Remarque:

  • Chaque image fera apparaître une boîte de dialogue contextuelle pour vous demander la confirmation de l'impression. Alors que d'autres types de fichiers seront imprimés directement.
  • S'il y a des images dans une signature d'e-mail, elles afficheront également des boîtes de dialogue contextuelles.
  • Si vous obtenez Les macros de ce projet sont désactivées erreur, veuillez consulter ce tutoriel : Comment activer et désactiver les macros dans Outlook ?

Impression par lots de toutes les pièces jointes dans plusieurs e-mails sélectionnés, à l'exception des images dans le corps

Pour imprimer uniquement les pièces jointes dans plusieurs e-mails mais les images dans le corps du message dans Outlook, veuillez suivre les étapes ci-dessous pour appliquer un code VBA.

1. Dans la liste de diffusion, veuillez maintenir Ctrl or Shift touches pour sélectionner plusieurs e-mails dont vous imprimerez les pièces jointes.

2. presse autre + F11 touches ensemble pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

3. Dans la fenêtre Microsoft Visual Basic pour Applications, cliquez sur Outils > Bibliographie. Et puis vérifiez le Exécution de scripts Microsoft comme indiqué ci-dessous. Une fois terminé, cliquez sur OK.

4Cliquez sur insérer > Module, puis collez sous le code VBA dans la nouvelle fenêtre de module.

VBA: imprimer toutes les pièces jointes dans plusieurs e-mails Outlook

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
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

5. presse F5 ou cliquez sur la Courir bouton pour exécuter ce code VBA. Vous verrez maintenant que toutes les pièces jointes des e-mails sélectionnés sont imprimées.

Remarque:

  • Chaque image jointe fera apparaître une boîte de dialogue contextuelle pour vous demander de confirmer l'impression. Alors que d'autres types de fichiers seront imprimés directement.
  • Les images dans le corps du message ne seront pas imprimées.
  • Si vous obtenez Les macros de ce projet sont désactivées erreur, veuillez consulter ce tutoriel : Comment activer et désactiver les macros dans Outlook ?

 


Démo: imprimer une ou toutes les pièces jointes dans un e-mail Outlook


Conseil : Dans cette vidéo, Kutools l'onglet est ajouté par Kutools for Outlook. Si vous en avez besoin, cliquez sur ici pour avoir un essai gratuit de 60 jours sans limitation!


Meilleurs outils de productivité bureautique

Kutools for Outlook - Plus de 100 fonctionnalités puissantes pour booster votre Outlook

🤖 Assistant de messagerie IA: E-mails professionnels instantanés avec la magie de l'IA : un clic pour des réponses géniales, un ton parfait, une maîtrise multilingue. Transformez l’emailing sans effort ! ...

📧 Email Automation: Absent du bureau (disponible pour POP et IMAP)  /  Programmer l'envoi d'e-mails  /  Auto CC/BCC par règles lors de l'envoi d'un e-mail  /  Transfert automatique (règles avancées)   /  Ajouter un message d'accueil automatique   /  Divisez automatiquement les e-mails multi-destinataires en messages individuels 

(I.e. Email Management: Rappel facile des e-mails  /  Bloquer les e-mails frauduleux par sujets et autres  /  Supprimer les e-mails en double  /  Recherche Avancée  /  Consolider les dossiers 

(I.e. Pièces jointes ProSauvegarde par lots  /  Détachement par lots  /  Compression par lots  /  Enregistrement automatique   /  Détachement automatique  /  Compression automatique 

???? Magie de l'interface: 😊Plus d'émojis jolis et cool   /  Boostez votre productivité Outlook avec des vues à onglets  /  Réduire Outlook au lieu de fermer 

???? Merveilles en un clic: Répondre à tous avec les pièces jointes entrantes  /   E-mails anti-hameçonnage  /  🕘Afficher le fuseau horaire de l'expéditeur 

👩🏼‍🤝‍👩🏻 Contacts et calendrier: Ajouter par lots des contacts à partir des e-mails sélectionnés  /  Diviser un groupe de contacts en groupes individuels  /  Supprimer les rappels d'anniversaire 

infos Caractéristiques 100 Attendez votre exploration ! Cliquez ici pour en savoir plus.

 

 

Comments (24)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Is it possible to specify a network printer instead of always printing with the standard printer?
This comment was minimized by the moderator on the site
Dear all,

I had tried the VBA and the code runs but many popups are opening on screen to print images from the mail signature (apparently this is considered an attachment). Anyone knows how to solve it?

S.
This comment was minimized by the moderator on the site
If you don't want to print pictures in the body of a message, please use the code below:
Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
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
This comment was minimized by the moderator on the site
Dear Amanda,

Thank you for the code. It worked!

S.
This comment was minimized by the moderator on the site
Hi there,

Sorry that printing images will bring up popups. You will have to confirm each to download all the images. If you don't need to print images, please click Cancel.

Amanda
This comment was minimized by the moderator on the site
I am using Microsoft 365 and this worked after deleting line 9. Thanks! This has saved a bit of time for me.
Rated 5 out of 5
This comment was minimized by the moderator on the site
hallo, ich möchte nur den Anhang der Mails von der angegebenen Adresse senden, wie kann ich das machen, danke
This comment was minimized by the moderator on the site
Vielen, vielen Dank dafür! Hat uns enorm viel Arbeit erspart.Auch ich musste - wie bereits in den Kommentaren geschrieben - die neunte Zeile "Dim xAttachment As Outlook.Attachment On Error Resume Next" entfernen, dann lief der Code einfandfrei durch.
This comment was minimized by the moderator on the site
Hi, this worked fine for me yesterday but now it is saying 'the macros in this project are disabled' Any advice how to enable them? 
This comment was minimized by the moderator on the site
This comment was minimized by the moderator on the site
on line 9 , removing "On Error Resume Next" worked for me.
This comment was minimized by the moderator on the site
Hi everyone, we updated the VBA code in the tutorial on 2022/08/03. If you still need to print all attachments, please check the new code. 😊
This comment was minimized by the moderator on the site
Hi, I have been using this shortcut for a few weeks now, printing all attachments from multiple emails at once, and I have recently been having to remove line 9 as Nilanka said, which has been working, but this no longer works. Im getting the warning box saying the macros in this project are disabled.....and so on... if someone has a solution to make this work as it has been prior to now, please lmk, as i am selecting about 60 emails all containing attachments to print. Thanks
This comment was minimized by the moderator on the site
This comment was minimized by the moderator on the site
Thank you 
This comment was minimized by the moderator on the site
yes this just worked for me as well. Thank you!
This comment was minimized by the moderator on the site
the VBA code gives syntax is error
This comment was minimized by the moderator on the site
if a pdf has the same name the macro prints just one pdf, how can i change the code in order to modify the pdf name?
This comment was minimized by the moderator on the site
if you want to print all attachments together in 1 email here's what you do. first make a folder on your desktop....I named mine "print". go to the email with the attachments....highlight all of the attachments, right click, save all attachments to the print folder. Open the print folder.....highlight all of them.....right click.....print.



now if only I could figure out how to print all the attachments in 200 emails without opening each one and printing it.
This comment was minimized by the moderator on the site
Kutools for Outlook's Detach All (Attachments) feature can help you download all attachments from multiple emails with several clicks! https://www.extendoffice.com/product/kutools-for-outlook/outlook-detach-attachments.html
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations