KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment enregistrer les pièces jointes sans avoir à ouvrir l’e-mail dans Outlook ?

AuteurSiluvia Date de modification

Vous devez souvent enregistrer les pièces jointes des e-mails reçus sur le disque de votre ordinateur. S’il est facile d’enregistrer une pièce jointe ou l’ensemble des pièces jointes d’un seul message, comment faire pour enregistrer celles de plusieurs e-mails en une seule fois ? Habituellement, vous devez ouvrir chaque e-mail à plusieurs reprises pour sauvegarder leurs pièces jointes. Existe-t-il des astuces permettant d’éviter ces manipulations répétitives ? Les méthodes présentées dans ce tutoriel sont là pour vous simplifier la tâche.

Enregistrer les pièces jointes d’un ou plusieurs e-mails sans les ouvrir à l’aide d’un code VBA
Enregistrer les pièces jointes d’un ou plusieurs e-mails sans les ouvrir à l’aide d’un outil remarquable


Enregistrer les pièces jointes d’un ou plusieurs e-mails sans les ouvrir à l’aide d’un code VBA

Le code VBA ci-dessous vous permet d’enregistrer simultanément les pièces jointes de un ou plusieurs e-mails, sans même avoir à ouvrir les messages dans Outlook. Voici la marche à suivre.

1. Sélectionnez un e-mail ou plusieurs e-mails dont vous souhaitez enregistrer les pièces jointes, puis appuyez sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic pour Applications.

2. Développez le dossier Objets Microsoft Outlook, double-cliquez sur ThisOutlookSession pour ouvrir la fenêtre Code, puis copiez le code VBA ci-dessous dans celle-ci.

enregistrer les pièces jointes avec VBA 1

Code VBA : enregistrer les pièces jointes sans ouvrir les e-mails

Public Sub SaveAttachmentsWithoutOpening()
'Updated by Extendoffice 20191008
Dim xMailItem As Outlook.MailItem
Dim xAttachments As Outlook.Attachments
Dim xAttachment As Outlook.Attachment
Dim i As Long
Dim xCount As Long
Dim xFileName As String
Dim xSavePath As String
Dim xOriginalFiles As String
On Error Resume Next
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.BrowseForFolder(0, "Select a folder:", 0, strStartingFolder)
If Not TypeName(xFolder) = "Nothing" Then
    Set xFolderItem = xFolder.self
    xSavePath = xFolderItem.Path & "\"
Else
    xFileName = ""
    Exit Sub
End If
For Each xMailItem In Outlook.ActiveExplorer.Selection
    Set xAttachments = xMailItem.Attachments
    xCount = xAttachments.Count
    xOriginalFiles = ""
    If xCount > 0 Then
        For i = xCount To 1 Step -1
            Set xAttachment = xAttachments.Item(i)
            If IsEmbeddedAttachment(xAttachment) = False Then
                xFileName = xSavePath & xAttachment.FileName
                xAttachment.SaveAsFile xFileName
                xAttachment.Delete
                If xMailItem.BodyFormat <> olFormatHTML Then
                    xOriginalFiles = xOriginalFiles & vbCrLf & "file://" & xFileName
                Else
                    xOriginalFiles = xOriginalFiles & "<br>" & "<a href='file://" & xFileName & "'>" & xFileName & "</a>"
                End If
            End If
        Next i
        If xMailItem.BodyFormat <> olFormatHTML Then
            xMailItem.Body = "The file(s) were saved to " & xOriginalFiles & vbCrLf & vbCrLf & xMailItem.Body
        Else
            xMailItem.HTMLBody = "<p>" & "The file(s) were saved to " & xOriginalFiles & "</p>" & xMailItem.HTMLBody
        End If
        xMailItem.Save
    End If
Next
Set xAttachments = Nothing
Set xMailItem = 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

4. Appuyez sur la touche F5 pour exécuter le code. Une fenêtre BrowseForFolder s’ouvre alors ; veuillez sélectionner un dossier pour enregistrer les pièces jointes, puis cliquez sur le bouton OK.

Toutes les pièces jointes des e-mails sélectionnés sont alors enregistrées instantanément dans le dossier choisi.

Remarque : Toutes les pièces jointes seront détachées des e-mails, et des liens vers leur emplacement d’enregistrement seront conservés dans le corps du message.

enregistrer les pièces jointes avec VBA 2

Enregistrer les pièces jointes d’un ou plusieurs e-mails sans les ouvrir à l’aide d’un outil remarquable

Si vous débutez en VBA, la méthode présentée dans cette section est faite pour vous.

Nous vous recommandons ici l’utilitaire Enregistrer toutes les pièces jointes de Kutools pour Outlook. Si vous souhaitez simplement enregistrer les pièces jointes sans les détacher des e-mails sélectionnés, la fonctionnalité « Enregistrer toutes les pièces jointes » vous permet de le faire en toute simplicité. Voici comment procéder.
Avant d’utiliser Kutools pour Outlook, veuillez d’abord le télécharger et l’installer.

Dites adieu à l’inefficacité d’Outlook ! Kutools pour Outlook simplifie le traitement par lots de vos e-mails – profitez dès maintenant d’un essai gratuit de 30 jours !Téléchargez Kutools pour Outlook dès maintenant !!

1. Sélectionnez les e-mails contenant les pièces jointes que vous souhaitez enregistrer, puis cliquez sur KUTOOLS PLUS > Outils de pièces jointes > Enregistrer tout.

2. Dans la boîte de dialogue Paramètres d'enregistrement, vous devez :

  • 2,1) Dans la section Enregistrer les pièces jointes dans ce dossier, choisissez un dossier pour enregistrer les pièces jointes ;
  • 2,2) La zone Enregistrer les pièces jointes avec le style suivant est facultative et vous permet de créer un sous-dossier selon un style spécifique pour enregistrer vos pièces jointes, ou de renommer celles-ci selon un format prédéfini.
  • 2,3) Cliquez sur OK pour commencer à enregistrer toutes les pièces jointes des e-mails sélectionnés.

Conseils : Avec les paramètres ci-dessus, toutes les pièces jointes seront enregistrées dans le dossier spécifié. Si vous souhaitez n’enregistrer que certaines pièces jointes — par exemple, uniquement celles dont le nom de fichier contient le mot « facture » —, vous pouvez configurer les conditions de filtre comme suit.

  • Cliquez sur le bouton Options avancéespour développer les conditions de filtre;
  • Spécifiez les conditions en fonction de vos besoins.
    Conseils : Ici, je coche la case Nom de la pièce jointe contient, puis saisis « facture » dans la zone de texte. Ensuite, je coche la case Le type de la pièce jointe est et saisis « .pdf » dans la zone de texte.
enregistrer les pièces jointes avec kutools 2

3. Dans la boîte de dialogue suivante qui s’ouvre, cliquez sur Oui pour continuer.

Les pièces jointes des e-mails sélectionnés sont alors enregistrées instantanément dans le dossier indiqué.

Conseil : pour détacher les pièces jointes des e-mails sélectionnés et ne laisser dans le corps du message que des liens hypertexte vers celles-ci, utilisez la fonctionnalité Détacher toutes les pièces jointes.


Articles associés

Télécharger/enregistrer automatiquement les pièces jointes depuis Outlook vers un dossier spécifique
Généralement, vous pouvez enregistrer toutes les pièces jointes d’un e-mail en cliquant sur Pièces jointes > Enregistrer toutes les pièces jointes dans Outlook. Toutefois, si vous devez enregistrer automatiquement toutes les pièces jointes provenant de tous les e-mails reçus, avez-vous une solution ? Cet article présente deux méthodes pour télécharger automatiquement les pièces jointes depuis Outlook vers un dossier spécifique.

Conserver les pièces jointes lors d’une réponse dans Outlook
Lorsque vous transférez un e-mail dans Microsoft Outlook, les pièces jointes d’origine sont automatiquement conservées. En revanche, lorsque vous répondez à un message, celles-ci ne sont pas incluses par défaut dans votre réponse. Découvrez ici quelques astuces simples pour garder les pièces jointes d’origine lorsque vous répondez dans Microsoft Outlook !

Rechercher des mots dans le contenu des pièces jointes dans Outlook
Lorsque vous saisissez un mot-clé dans la zone de recherche instantanée d’Outlook, celui-ci explore automatiquement les objets, les corps des messages, les pièces jointes, etc. Mais que faire si vous souhaitez rechercher ce mot-clé uniquement dans le contenu des pièces jointes ? Cet article vous explique précisément comment effectuer facilement cette recherche dans Outlook.