Mercredi 29 Mars 2017  
Navigation
FAQ Outlook
» Foire Aux Questions «
Recherche
Téléchargements
Forums Outlook
Plan du site
Liens
Login

Les inscriptions sont fermées

Pseudo

Mot de passe

Se souvenir de moi



Mot de passe oublié ? Mot de passe oublié ?
Connexions
Bienvenue à [FAMACLUB]
le 1,414ème membre
Visiteurs en ligne : 3
Membres en ligne : 0

 callaghi 1 jour
 Alphator 9 semaines
 ande 15 semaines
 Oliv 17 semaines
 cubitus 20 semaines
 JièL 25 semaines
 angel 31 semaines
 Quartzkyte 39 semaines
 grouilau 40 semaines
 miguy973 49 semaines

Non activés :0

Nombre de visiteurs
depuis le : 12/11/2008

Aujourd'hui:3 823
En ligne :2
Max. en ligne:312
Max. / jour:66 529
Total hier:6 355
Total ce mois:150 989
Total visites:17 271 472
Moyenne/jour:5 648

Dernières 24h

























Publicité ; elle permet de financer le site
Navigation parmi les catégories/articles
« Catégorie     Q15000 Macros - VBA (41)  Catégorie »
[<<]  « Article  Article »  [>>]
R15230 [VBA] Extraire automatiquement les pièces jointes vers un dossier Windows.

Vous recevez règulièrement des mails contenant des PJ à extraire dans le même dossier Windows voici un code qui vous servira. Il utilise les règles avec l'option exécuter un script.


Copiez ce code dans un module. Puis créez une règle à l'arrivée d'un nouveau message selon les conditions que vous souhaitez et choississez comme action Exécuter un script + arrêter de traiter plus de règles.

Dans cet exemple le répertoire C:\TEMP\pj doit exister.

Vous devez aussi référencer Microsoft CDO 1.21 Library dans VBE.
Pour Outlook 2007 il faut le télécharger là :
http://www.microsoft.com/downloads/details.aspx?familyid=2714320d-c997-4de1-986f-24f081725d36&displaylang=en


Sub extrait_PJ_vers_rep(strID As Outlook.MailItem)

' ***olivier CATTEAU***

' 23 avril 2007

Dim olNS As Outlook.NameSpace

Dim MyMail As Outlook.MailItem

Dim expediteur
Set olNS = Application.GetNamespace("MAPI")

Set MyMail = olNS.GetItemFromID(strID.EntryID)

'MsgBox "nouveau message"

If MyMail.Attachments.Count > 0 Then

expediteur = MyMail.SenderEmailAddress


'on crée le répertoire où mettre les fichiers joints ##########################################################

'c:\temp\pj\ doit déjà exister !!!

Repertoire = "c:\temp\pj\" & expediteur & "\"

If Repertoire <> "" Then

If "" = Dir(Repertoire, vbDirectory) Then

MkDir Repertoire

End If

End If


'on traite les pj

Dim PJ, typeatt

For Each
PJ In MyMail.Attachments

'vérification si c'est une PJ Embedded

typeatt = Isembedded(strID, PJ.index)

If typeatt = "" Then

If "" <> Dir(Repertoire & PJ.FileName, vbNormal) Then

MsgBox Repertoire & PJ.FileName & " existe !!"

'si existe copie vers le répertoire old

If "" = Dir(Repertoire & "old", vbDirectory) Then

MkDir Repertoire & "old"

End If

FileCopy Repertoire & PJ.FileName, Repertoire & "old\" & PJ.FileName

End If

PJ.SaveAsFile Repertoire & PJ.FileName

End If

Next PJ

'drapeau vert

MyMail.FlagIcon = olGreenFlagIcon

'Marque lu

MyMail.UnRead = False

MyMail.Save

'on déplace le mail vers un sous dossier outlook

Dim myDestFolder As Outlook.MAPIFolder

Set myDestFolder = MyMail.Parent.Folders("test")

MyMail.Move myDestFolder

End If

Set MyMail = Nothing

Set olNS = Nothing

Fin:

End Sub


' Function: Fields_Selector

' Purpose: View type of attachment

' olivier catteau fevrier 2006

Function Isembedded(ByVal strEntryID As String, attindex As Integer) As Variant

Dim oSession As MAPI.Session

' CDO objects

Dim oMsg As MAPI.Message

Dim oAttachs As MAPI.Attachments

Dim oAttach As MAPI.Attachment

' initialize CDO session

On Error Resume Next

Set oSession = CreateObject("MAPI.Session")

oSession.Logon "", "", False, False


' get the message created earlier

Set oMsg = oSession.GetMessage(strEntryID)

' set properties of the attached graphic that make

' it embedded and give it an ID for use in an <IMG> tag

Set oAttachs = oMsg.Attachments
Set oAttach = oAttachs.Item(attindex)

Dim strCID As String

strCID = oAttach.Fields(&H3712001E)

Isembedded = strCID

Set oMsg = Nothing

oSession.Logoff

Set oSession = Nothing


End Function



Publié par Oliv le lundi 23 avril 2007 17:22 0 Commentaires 23546 Lecture(s) Imprimer
Commentaires
les commentaires sont fermés.
Copyright et partage
Ce site est sous licence Creative Commons.
Vous pouvez utiliser toutes les informations présentent ici, mais il vous est interdit de les reproduire sans citer la source.

Creative Commons License
OUI au partage
NON au « copillage »

Ajouter aux favoris / partager : 
URL :
BBcode :
HTML :
Cliquez ci dessus sur le lien que vous voulez copier et [Ctrl] + [C] ou cliquez sur le bouton [ C ]
Articles similaires
Articles Catégories
R06032 Utiliser l'archivage automatique avec les dates de réception Q06000 Les fichiers d'Outlook
R15045 [VBA] Ouvrir l'arborescence des pst contenant une boîte de réception Q15000 Macros - VBA
R15930 [VBA] Création de menu dans outlook Q15000 Macros - VBA
R17070 VSTO et les formulaires d'Outlook 2007 Q17000 Formulaires
R15380 [VBA] Envoi via VBA : suppression de la confirmation d'envoi Q15000 Macros - VBA
Nuage de tags
R00100 Afficher les GIFs animés avec Outlook 2007, R02020 Envoyer / recevoir automatiquement, R20040 Configurer un compte GMAIL pour Outlook 2002/2003, R01060 Définir une adresse de retour différente, temporairement, R20020 Configurer un compte IMAP pour Outlook 2002/2003, R08100 Impossible d'ouvrir une pièce jointe, R06030 Paramétrer l'archivage automatique, R03040 Choisir un papier à lettres pour un message, R15500 [VBA] Envoyer un fichier OFFICE par mail, R15340 [VBA] Obliger la saisie d'un sujet, R02020 Envoyer / recevoir automatiquement, R99200 Pourquoi la copie est merdique ?, R08120 Erreur 554 Relay Access Denied, R15900 [VBA] Relever des boites pop sequentiellement (FREE), R17005 Création d'éléments basique

aucun Crack, CrackZ, no-CD, DownloadZ, TelechargementZ, Serial, Numéro de série, N0 de série, Serialz ni Keygen pour Outlook sur ce site.

Blague aléatoire
Publicité
Météo Marseille
[/\] Copyright JièL / Jean-Louis Goubert © 2003-2009 [/\]