Bonjour
J'ai crée un code qui va chercher tout les mail d'une regle et qui en extrait les piece jointe dans un dossier. Voila le code (il fonctionne parfaitement
).
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 34 35 36 37 38 39 40 41 42 43
| Public Sub TransfertPJ()
'Création de l'objet Outlook
Set objoutlook = CreateObject("Outlook.application")
'Récupération de l'espace de nom d'outlook
Set olns = objoutlook.GetNamespace("MAPI")
'Récupération du répertoire "boite de réception" par défault
Set fld = olns.GetDefaultFolder(olFolderInbox)
' Initialisation du reperetoire de sauvegarde
' ne pas oublier l'anti-slash à la fin du repertoire
Repertoire = "Z:\Risques et documentation OPCVM\Rapprochement Front Back\Confirmation Trades\Essai\"
'Inialisation des variables Message, NomDeFichier, NomDeFichierSurDisque, Taille, Emetteur
message = NomDeFichierSurDisque = NomDeFichier = Taille = Emetteur = ""
' Sauve les pieces jointes des mails se trouvant dans la boîte de réception.
' Pour adresser un dossier dans la boite de réception on pourrait utiliser :
' fld.Folders("Nom_Du_Dossier").Items
For Each mItem In fld.Folders("Confirmation Oddo").Items
For Each att In mItem.Attachments
If att.Type = olByValue Then
' Nom du fichier modifié pour l'enregistrement. Evite les controles superflus en renommant.
NomDeFichier = att.Filename
NomDeFichierSurDisque = NomDeFichier
att.SaveAsFile Repertoire & NomDeFichierSurDisque
End If
Next
Next
Exit Sub
End Sub |
Mais j'aimerais bien qu'il ouvre d'abord toute les pieces jointes et qu'il enregistre dans le chemin uniquement si en celllule C10, il y a la date de la veille.
Pour cela j'ai crée un fonction veille
(et qui prend vendredi si lundi est la veille...)
1 2 3 4 5 6
| Private Function Veille() As Date
Dim d As Byte
d = DatePart("w", Date, vbSunday) 'Si Date est Dimanche ou Lundi, on prend Vendredi comme étant la veille. 'Sinon, on prend j-1
Veille = Date - IIf(d <= 2, d + 1, 1)
End Function |
Je pense qu'il faudrait intercaller à partir de là
For Each att In mItem.Attachments
du code pour ouvrir les PJ et de les enregistrer si Range("C10").value = Veille mais je ne vois pas comment faire ça exactement.
Quelq'un pourrait me donner un coup de main?
Partager