Enregistrement pièce jointe depuis outlook

Bonjour,

Je voudrais savoir si il était possible depuis VBA (Excel ou Outlook) d'enregistrer une pièce jointe d'un mail outlook dans un dossier donné?

Si oui, est-il également possible depuis VBA de pouvoir lire le nom du fichier enregistré dans le dossier en question ?

Merci pour votre aide,

Bonne fin de journée,

Hello,

Oui pour tes 2 questions.

En revanche, pour enregistrer la PJ c'est + compliqué :

'Voici un code qui balaye les pièces jointes de la boite de réception :

    Sub PjOutlook()
       Dim AppOl As Outlook.Application
       Dim pj As Outlook.Attachment
       Dim courriel As Outlook.MailItem
       Dim dossier As Outlook.MAPIFolder
       Dim ns As Outlook.NameSpace
       AppOl = CreateObject("Outlook.Application")
       ns = AppOl.GetNamespace("MAPI")
       ' boite de réception
       dossier = ns.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderInbox)
       ' Boucle sur les courrriers reçus
       For Each courriel In dossier.Items
           For Each pj In courriel.Attachments
               Console.WriteLine(courriel.Subject & ": " & pj.FileName)
           Next pj
       Next courriel
       AppOl.Quit()
   End Sub

la réf : https://social.msdn.microsoft.com/Forums/fr-FR/480cbf00-02a6-4233-a91c-a3da5fc09548/extraire-une-pic...

Bonjour Rag,

Merci pour ton retour, grâce à toi j'ai pu finir ma macro et cela marche nickel, la voici:

Sub toto6()

Dim olapp As Outlook.Application
Set olapp = New Outlook.Application
Dim NS As Object, Dossier As Object
Dim OlExp As Object
Dim i As Object
Dim fromsender() As String

Set NS = olapp.GetNamespace("MAPI")
Set Dossier = NS.GetDefaultFolder(olFolderInbox).Folders("CACEIS Etat")

For Each i In Dossier.Items

 If i.SenderEmailType <> "EX" And i.UnRead Then

 i.UnRead = False
 sujet = i.Subject

  If InStr(1, UCase(sujet), UCase("Avis d'opérés")) Or InStr(1, UCase(sujet), UCase("Extrait de compte cash")) > 0 Then

       If Not i.Attachments.Count = 0 Then
               'récupère et renomme la première pièce jointe
                     Set pceJointe = i.Attachments(1)
                     pjName = pceJointe.Filename
                                          nombre_aleatoire = Int(1000 * Rnd) + 1
                    nombre_de_caractere = Len(pjName)
                    Nv_Pj = Left(pjName, nombre_de_caractere - 4)
                    Nv_Pj = Nv_Pj & nombre_aleatoire & ".PDF"

                  pceJointe.SaveAsFile "Votre chemin" & Nv_Pj
                    Set pceJointe = Nothing
End If
End If
End If
Next i

Call toto4

End Sub

Si vous êtes interessé par comment je fais pour les attribuer dans un dossier en particulier n'hésitez pas à me demander, c'est avec plaisir que je partagerai la macro.

Bonne fin de journée,

Good job

Rechercher des sujets similaires à "enregistrement piece jointe outlook"