Sauvegarde automatique des pièces jointes des mails reçus vba outlook

Soyez le premier à donner votre avis sur cette source.

Snippet vu 22 225 fois - Téléchargée 17 fois

Contenu du snippet

Ce code permet de sauvegarder les pièces jointes des mails recus dans la boite de réception sur un disque local ou réseau avec filtre sur l'adresse mail, le nom de l'expéditeur ou le sujet du mail, ce code est à coller dans l'éditeur VBA d'Outlook

Source / Exemple :


'la procédure se lance à la réception d'un nouveau mail
Private Sub Application_NewMail()
Call sauvegardePJ
End Sub
'procédure de sauvegarde
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
    'Instance des objets
    Set MonApp = Outlook.Application
    Set MonNameSpace = MonApp.GetNamespace("MAPI")
    Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
    numero = MonDossier.Items.Count
    Set MonMail = MonDossier.Items(numero)
'chemin de destination des pièces jointes
    chemin = "C:\Documents and Settings\Mes documents\"
    NbAttachments = MonMail.Attachments.Count
    'contrôles possibles:nom de l'expéditeur, adresse mail expéditeur et sujet du mail
        'MonMail.SenderName= ""
        'MonMail.SenderEmailAddress
        'MonMail.Subject
        If MonMail.Subject = "Test" Then
            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

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1
Date d'inscription
mercredi 11 avril 2018
Statut
Membre
Dernière intervention
12 avril 2018

bonjour merci pour votre code ..mais dites moi il me faut installer le MAPI ou bien ? parce que j'execute le code mais je ne recois pas le fichier joint dans l'endroit spécifié ..help pliz
Bonjour,

j'ai Outlook 2010, est la macro ne fonctionne pas automatiquement a la réception d'un nouveau mail, en-revanche elle fonctionne manuellement (execution depuis Outlook) pouvez vous m'aider svp merci.

Private Sub Application_NewMail()
Call sauvegardePJ
End Sub

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
'Instance des objets
Set MonApp = Outlook.Application
Set MonNameSpace = MonApp.GetNamespace("MAPI")
Set MonDossier = MonNameSpace.GetDefaultFolder(olFolderInbox)
numero = MonDossier.Items.Count
Set MonMail = MonDossier.Items(numero)
'chemin de destination des pièces jointes
chemin = "C:\test\"
NbAttachments = MonMail.Attachments.Count
'contrôles possibles:nom de l'expéditeur, adresse mail expéditeur et sujet du mail
'MonMail.SenderName = ""
'MonMail.SenderEmailAddress
'MonMail.Subject
If MonMail.Subject = "Test" Then
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
Messages postés
28
Date d'inscription
mercredi 1 février 2012
Statut
Membre
Dernière intervention
17 avril 2013

rien dis.. c ok pour moi
Messages postés
9
Date d'inscription
mercredi 23 janvier 2008
Statut
Membre
Dernière intervention
22 mai 2015

Bonjour,
Je cherche un code pour alimenter les contacts Outlock 2007 avec MDB Acces 2003 en liant la table de manniere à ce que les modifications se mettent a jour ds les 2 sens.
Ce n'est pas en lien direct avec ce post, mais vous pourrez peut être me donner des pisteS, je suis débutant
Merci d'avance
Messages postés
116
Date d'inscription
jeudi 14 décembre 2006
Statut
Membre
Dernière intervention
29 août 2013

Bonjour,

Le code fonctionne sous 2007, j'ai pas testé sous 2010 mais ca devrait fonctionner en revanche ne pas tenir compte de la remarque de PDEBAERE car la propriété .MAPIFolder n'existe pas en 2007
Afficher les 9 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.