Accéder au contenu principal

Comment enregistrer les pièces jointes sans ouvrir l'email dans Outlook ?

Author: Siluvia Last Modified: 2025-05-27

Vous avez peut-être souvent besoin d'enregistrer des pièces jointes des emails reçus sur vos disques d'ordinateur. Il est facile d'enregistrer une pièce jointe ou toutes les pièces jointes d'un message électronique, mais comment enregistrer des pièces jointes de plusieurs emails à la fois ? Normalement, vous devez ouvrir chaque email et enregistrer les pièces jointes un par un. Existe-t-il des astuces pour éviter ces opérations répétitives ? Les méthodes de ce tutoriel peuvent vous aider.

Enregistrer des pièces jointes d'un ou plusieurs emails sans les ouvrir avec du code VBA
Enregistrer des pièces jointes d'un ou plusieurs emails sans les ouvrir avec un outil incroyable


Enregistrer des pièces jointes d'un ou plusieurs emails sans les ouvrir avec du code VBA

Le code VBA ci-dessous peut vous aider à enregistrer des pièces jointes d'un ou plusieurs emails en même temps sans avoir à ouvrir les emails dans Outlook. Veuillez suivre les étapes ci-dessous.

1. Sélectionnez un email ou plusieurs emails dont vous souhaitez enregistrer les pièces jointes, puis appuyez sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for 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 dedans.

save attachments with VBA 1

Code VBA : Enregistrer les pièces jointes sans ouvrir les emails

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 apparaît, veuillez sélectionner un dossier pour enregistrer les pièces jointes, puis cliquez sur le bouton OK.

Toutes les pièces jointes des emails sélectionnés sont alors immédiatement enregistrées dans le dossier choisi.

Remarque : Toutes les pièces jointes seront détachées des emails et les liens correspondants vers leur chemin d'enregistrement seront conservés dans le corps de l'email.

save attachments with VBA 2

Enregistrer des pièces jointes d'un ou plusieurs emails sans les ouvrir avec un outil incroyable

Si vous êtes débutant en VBA, la méthode décrite dans cette section sera un bon choix pour vous.

Nous recommandons ici Enregistrer toutes les pièces jointes fonctionnalités de Kutools pour Outlook pour vous. Si vous souhaitez simplement enregistrer les pièces jointes sans les détacher des emails sélectionnés, la fonctionnalité Enregistrer toutes les pièces jointes peut vous y aider facilement. Veuillez suivre les étapes ci-dessous.
Avant d'utiliser Kutools pour Outlook, veuillez télécharger et installer le logiciel d'abord.

Découvrez l'efficacité ultime des emails avec Kutools pour Outlook ! Accédez à 70 fonctionnalités puissantes entièrement gratuites, pour toujours. Téléchargez la version gratuite dès maintenant !

1. Sélectionnez les emails contenant les pièces jointes que vous souhaitez enregistrer, 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 case Enregistrer les pièces jointes avec le style ci-dessous est facultative pour créer un sous-dossier avec un certain style pour enregistrer les pièces jointes, ou renommer les pièces jointes enregistrées avec un certain style.
  • 2.3) Cliquez sur OK pour commencer à enregistrer toutes les pièces jointes des emails sélectionnés.

Astuce : Avec les configurations ci-dessus, toutes les pièces jointes seront enregistrées dans le dossier spécifié. Si vous souhaitez uniquement enregistrer certains types de pièces jointes, comme uniquement les fichiers PDF contenant le mot "facture" dans le nom de fichier, vous pouvez configurer les conditions de filtre comme suit.

  • Cliquez sur le bouton Options avancées pour développer les Conditions de filtre ;
  • Spécifiez les conditions en fonction de vos besoins.
    Astuce :Ici, je coche la case Nom de la pièce jointe contient, puis j'entre "facture" dans la zone de texte, ensuite je coche la case Type de la pièce jointe et entre ".pdf" dans la zone de texte.
save attachments with kutools 2

3. Dans la prochaine boîte de dialogue qui apparaît, cliquez sur Oui pour continuer.

Les pièces jointes des emails sélectionnés sont alors immédiatement enregistrées dans le dossier spécifié.

Astuce : Pour détacher les pièces jointes des emails sélectionnés et ne laisser que les hyperliens des pièces jointes dans le corps de l'email, la fonctionnalité Détacher toutes les pièces jointes peut vous aider.


Articles connexes

Téléchargement/enregistrement automatique des pièces jointes depuis Outlook vers un dossier spécifique
Généralement, vous pouvez enregistrer toutes les pièces jointes d'un email en cliquant sur Pièces jointes > Enregistrer toutes les pièces jointes dans Outlook. Mais si vous avez besoin d'enregistrer toutes les pièces jointes de tous les emails reçus et à venir, avez-vous une idée ? Cet article présente deux solutions pour télécharger automatiquement les pièces jointes depuis Outlook vers un dossier spécifique.

Conserver les pièces jointes lors de la réponse dans Outlook
Lorsque nous transférons un message électronique dans Microsoft Outlook, les pièces jointes originales de cet email sont conservées dans le message transféré. Cependant, lorsque nous répondons à un email, les pièces jointes originales ne seront pas incluses dans le nouveau message de réponse. Voici quelques astuces pour conserver les pièces jointes originales lors de la réponse dans Microsoft Outlook.

Rechercher des mots dans le contenu des pièces jointes dans Outlook
Lorsque nous tapons un mot-clé dans la barre de recherche instantanée dans Outlook, cela recherche le mot-clé dans les sujets, corps des emails, pièces jointes, etc. Mais maintenant, je souhaite rechercher le mot-clé uniquement dans le contenu des pièces jointes dans Outlook, avez-vous une idée ? Cet article vous montre les étapes détaillées pour rechercher des mots dans le contenu des pièces jointes dans Outlook facilement.