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

Soyez le premier à donner votre avis sur cette source.

Snippet vu 20 363 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

NikatorS
Messages postés
149
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
15 avril 2011
-
Intéressant !

Je note pour plus tard, ça sera utile.
Adn56
Messages postés
1220
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1 -
oui si on n'utilse pas outlook express :(
bon code, mais pas pour le commun des users !
vivement un code pour outlook express, tiens et s'y je m'y collais ? pas en vba toujours.
++
pdebaere
Messages postés
1
Date d'inscription
mardi 5 août 2008
Statut
Membre
Dernière intervention
26 avril 2010
-
Dim MonDossier As Outlook.Folder
remplacer .Folder par .MAPIFolder
Merci pour le code et l'idée
HermesCB
Messages postés
11
Date d'inscription
dimanche 8 mai 2005
Statut
Membre
Dernière intervention
14 avril 2013
-
bonjour
question:
le code fonctionne-il avec microsoft outlook 2007 et suite ... 2010
merci
houtas
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

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.