Extraction mails boite mail outlook
Bonjour ,
J'ai récupéré un code vba sur le forum pour extraire toutes les pieces jointe de mon mail Outlook.
Quand je veux l'exécuter il m'affiche l'erreur suivante
x pceJointe.SaveAsFile "C:\PJ\" & x & "_" & pceJointe= x + 1
avec pour code erreur : impossible d'enregistrer la piece jointe . ce chemin d'acces nexiste pas
Qu'elqu'un peut m'aider svp . je suis ultra debutante et nul en vba.
Option Explicit
'------------------------------------------------------------------------
'Nécessite d'activer la référence Microsoft Outlook xx.xx Object Library
'------------------------------------------------------------------------
Dim x As Integer
'La boite de réception, la boite des éléments supprimés et tous leurs
'sous dossiers sont pris en compte.
Sub ExportePiecesJointes()
Dim Ol As New Outlook.Application
Dim Ns As Outlook.NameSpace
Dim Dossier As Outlook.MAPIFolder
Set Ns = Ol.GetNamespace("MAPI")
Set Dossier = Ns.Folders(1)
SearchFolders Dossier
x = 0
End Sub
Private Sub SearchFolders(ByVal fld As Outlook.MAPIFolder)
Dim y As Integer
Dim OLmail 'As Outlook.MailItem
Dim pceJointe As Outlook.Attachment
Dim SousDossier As Outlook.MAPIFolder
For Each SousDossier In fld.Folders
'.Item("boite de reception").Items
If SousDossier.DefaultItemType = 0 Then
For Each OLmail In SousDossier.Items
If Not OLmail.Attachments.Count = 0 Then
For y = 1 To OLmail.Attachments.Count
Set pceJointe = OLmail.Attachments(y)
x pceJointe.SaveAsFile "C:\PJ\" & x & "_" & pceJointe= x + 1
Set pceJointe = Nothing
Next y
End If
Next OLmail
End If
SearchFolders SousDossier
Next SousDossier
End Sub
Bonjour et
Essai comme ça :
Option Explicit
'------------------------------------------------------------------------
'Nécessite d'activer la référence Microsoft Outlook xx.xx Object Library
'------------------------------------------------------------------------
Dim x As Integer
'La boite de réception, la boite des éléments supprimés et tous leurs
'sous dossiers sont pris en compte.
Sub ExportePiecesJointes()
Dim Ol As New Outlook.Application
Dim Ns As Outlook.NameSpace
Dim Dossier As Outlook.MAPIFolder
Set Ns = Ol.GetNamespace("MAPI")
Set Dossier = Ns.Folders(1)
SearchFolders Dossier
x = 0
End Sub
Private Sub SearchFolders(ByVal fld As Outlook.MAPIFolder)
Dim y As Integer
Dim EmplacementPJ As String
Dim OLmail 'As Outlook.MailItem
Dim pceJointe As Outlook.Attachment
Dim SousDossier As Outlook.MAPIFolder
For Each SousDossier In fld.Folders
'.Item("boite de reception").Items
If SousDossier.DefaultItemType = 0 Then
For Each OLmail In SousDossier.Items
If Not OLmail.Attachments.Count = 0 Then
For y = 1 To OLmail.Attachments.Count
Set pceJointe = OLmail.Attachments(y)
EmplacementPJ = "C:\PJ\"
If Dir(EmplacementPJ, vbDirectory) = vbNullString Then MkDir (EmplacementPJ)
pceJointe.SaveAsFile EmplacementPJ & x & "_" & pceJointe
x = x + 1
Set pceJointe = Nothing
Next y
End If
Next OLmail
End If
SearchFolders SousDossier
Next SousDossier
End SubJ'ai rajouté la variable "EmplacementPJ" qui va définir l'endroit ou va se stocker tes pieces jointes
EmplacementPJ = "C:\PJ\"
If Dir(EmplacementPJ, vbDirectory) = vbNullString Then MkDir (EmplacementPJ)"If dir" va creer un dossier suivant ce que tu as dans la variable "EmplacementPJ" si il n'existe pas
et j'ai modifié la partie avec l'increment du x (coquille dans ton copier-coller)
x = x + 1A+
Bonjour
merci j'arrive pas a executer le code
Il mindique que les macros de ce projet sont désactivés .
Bonjour,
Je pensais t'avoir répondu, essai d'aller dans le ruban Developpeur -> sécurité des macros
Voir l'option activée
Je pense qu'il faudra relancer la seession Outlook et quand tu vas vouloir lancer "Sub ExportePiecesJointes()",
il va te proposer d'activer ou non les macros.
A+
PS: tu peux changer cette ligne de code :
pceJointe.SaveAsFile EmplacementPJ & x & "_" & pceJointepar
pceJointe.SaveAsFile EmplacementPJ & x & "_" & pceJointe.Parent.SenderName & "_" & Format(pceJointe.Parent.ReceivedTime, "dd-mmm-yy") & "_" & pceJointePour ajouter le nom de l'expéditeur de mail et la date d'envoi aux pieces jointes qui seront dans le dossier C:\PJ\