Bonjour à tous !
Je sais que un sujet similaire existe sur le forum mais étant débutant sur VBA je bloquue malgré tout:
Voici mon problème :
Tous les jours je reçois un mais automatique contenant un pièce jointe. Je veux enregistrer cette pièce jointe dans un dossier sur mon disque dur. Jusque là tout va bien. Le problème est que cet e-mail n'arrive pas dans ma boite de réception mais dans un sous - sous dossier de celle ci.
j'ai testé en me transférant le mail sur ma boite principale et cela fonctionne.
Voici mon (mes) code(s)
Dans "this outlook session" jai :
qui me permet d'appeller la macro d'enregistrement des pièces jointes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Private Sub Application_NewMail() Call Module1.sauvegardePJ 'cette macro lance automatiquement la macro sauvegarderPJ à la réception d'un nouveau mail End Sub
Dans "Module 1" jai :
*Ayant grapillé des morceaux de codes à droite et à gauche il est possible que le code ne soit pas très cohérent, mais comme dit je débute ^^, tout conseil est bon à prendre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub sauvegardePJ() Dim MonApp As Outlook.Application Dim MonNameSpace As Outlook.NameSpace Dim MonDossier As Outlook.Folder Dim MonMail As Outlook.MailItem Dim numero As Integer Dim strAttachment As String Dim NbAttachments As Integer Dim chemin As String Dim MonDossier As Folder '*************************************************************************************************Instance des objets Set MonApp = Outlook.Application 'Défini l'application Outlook active Set MonNameSpace = MonApp.GetNamespace("MAPI") 'Défini le nom d'utilisateur '********************* à mon avis c'est la ligne qui suit qui pose problème **************************** Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox) 'Chemin vers la boite de réception princpale numero = MonDossier.Items.Count 'compte le nombre de nouveau mail et commence par le premier Set MonMail = MonDossier.Items(numero) 'chemin de destination des pièces jointes chemin = "chemin d'enrgistrement des pj" NbAttachments = MonMail.Attachments.Count If MonMail.Subject = "sujet du mail" Then 'vérifier le sujet du mal i = 1 Do While i <= NbAttachments strAttachment = MonMail.Attachments.Item(i).FileName MonMail.Attachments.Item(i).SaveAsFile chemin & strAttachment i = i + 1 Loop End If End Sub
Partager