VBA entre Outlook et Excel

julien712

XLDnaute Junior
Bonjour

Voulant automatiser une tache, je souhaites faire la chose suivante :

- Sélectionner un mail qui a pour objet "toto" et dont la date de réception est la date du jour de l’exécution de la macro
- Enregistrer le fichier en pièce jointe du mail "toto" sur un répertoire réseau.

Je connais des procédures VBA classiques mais là, pour faire appel à Outlook et enregistrer sur le réseau je suis totalement perdu.

Avez vous une idée ?

Merci
 

fredl

XLDnaute Impliqué
Re : VBA entre Outlook et Excel

Voili voila!
Dis moi!
nb : paramétrer les 2 variables vobjet et Repertoire
Fred

[ Code ]
Sub MailPieceJointeTransfert()
Dim message, Repertoire, NomDeFichierSurDisque, NomDeFichier, Taille, Emetteur, vobjet As String
'paramétrer les 2 variables ci dessous
vobjet = "essai"
' Initialisation du reperetoire de sauvegarde - ne pas oublier l'anti-slash à la fin du repertoire
Repertoire = "D:\bilan\"


On Error GoTo errorhandler
'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
Compteur = 0
' 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.Items
'si mail du jour avec "objet" recherché...
If mItem.Subject = vobjet And Int(mItem.CreationTime) = Int(Now) Then
For Each att In mItem.Attachments
If att.Type = olByValue Then
Compteur = Compteur + 1
' Nom du fichier modifié pour l'enregistrement. Evite les controles superflus en renommant.
Taille = mItem.Size
Emetteur = mItem.SenderName
NomDeFichier = att.Filename
NomDeFichierSurDisque = NomDeFichier
att.SaveAsFile Repertoire & NomDeFichierSurDisque
' affiche différentes informations :
' att.index = position du fichier dans le message
' att.filename = nom du fichier
' mItem.SenderName = Nom de l'émetteur
' mItem.Subject = Sujet du message
' mItem.Body = Corps du message
' mItem.HTMLBody = affiche le le corps du message en HTML - idéal pour récuperer les signatures !
' mItem.Size = Donne la taille du message
' Message = Message & "Le fichier " & att.FileName & " à été sauvegardé." & Chr(13)
message = message & "Message de " & Emetteur & " - " & NomDeFichier & " à été sauvegardé." & Chr(13)
mItem.UnRead = False
'att.Delete
End If
Next
End If
Next

' Message du nombre de PJ enregisté
If Compteur > 0 Then
'Information.Label1 = "Il y a eu " & Compteur & " fichiers de copiés."
'Information.TextBox1.Enabled = True
'Information.TextBox1 = message
'Information.Show
MsgBox Compteur & " fichiers copié(s) : " & vbLf & message
End If
Exit Sub
errorhandler:
MsgBox Err.Description, , Err.Source
End Sub
[ /Code ]
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 881
Membres
103 981
dernier inscrit
vinsalcatraz