[VBA Outlook 2003] - Sauvegarder les mails au format .msg [Résolu]

Signaler
Messages postés
22
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
14 août 2008
-
Messages postés
22
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
14 août 2008
-
Bonjour à tous

il y a quelques temps, j'avais trouver un code me permettant de sauvegarde les mails de outlook dans un dossier spécifié en formatant le fichier .msg de la facon suivante :
aaaammjj-expediteur-objet.msg

Suite à un plantage de mon DD, j'ai perdu ce code (je sais j'aurais du la sauvegarder quelque part ou l'imprimer).

Est ce que quelqu'un pourrait m'aider a recréer cette fonction en vba ou bien de donner des listes de sites traitant du vba pour outlook 2003 ?

J'ai bien en début de code, mais hélas quand je le teste je tombe sur des messages d'erreurs et n'étant pas un specialiste vba je n'arrive pas à débugger le code.

Code :
Set objCurrentMessage = ActiveInspector.CurrentItem
Sujet = objCurrentMessage.Subject
repertoire = "c:\mail"
objCurrentMessage.SaveAs repertoire & sujet & ".msg", OlSaveAsType.olMSG

Merci d'avance

La route du savoir est plus longue que la muraille de Chine

4 réponses

Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Salut,



Déjà, il faut déclarer les variables
Ensuite, on récupére la séléction via ActiveExplorer.Selection.






Const OutputDirectory As String = "c:\mail\"
Dim SelectObject As Selection
Set SelectObject = Outlook.Application.ActiveExplorer.Selection
Dim i As Integer
For i = 1 To SelectObject.Count
  Dim Item As MailItem
  Set Item = SelectObject.Item(i)
  Dim ItemOutputFileName As String
  ItemOutputFileName = OutputDirectory & Item.Subject & ".msg"
  Item.SaveAs ItemOutputFileName, OlSaveAsType.olMSGUnicode
Next i,

----

(
Messages postés
3172
Date d'inscription
dimanche 15 février 2004
Statut
Membre
Dernière intervention
9 avril 2017
30
Si tu regarde le contenu de ItemOutputFileName, il y a (par exemple) :
c:\mail\20/07/2007 09:19:48 PM-CodeS-SourceS.com-Nouveau message sur le Forum de VBFrance.com [[VBA Outlook 2003] - Sauvegarder les mails au format .msg].msg

La date ne va pas. Pourquoi ? Parsque elle contient des / et des : et qui sont non autoriser dans les noms de fichiers.
Pour transformer ca, tu peux utiliser la fonction format qui te permettera aussi de choisir comment l'afifcher.
Par exemple: Format$(Item.ReceivedTime, "dd-mm-yy  Hh Nn Ss")

Tu as toute la doc sur cette fonction ici :

http://office.microsoft.com/client/helppreview.aspx?AssetID=HV012026591033&ns=OUTLOOK.DEV&lcid=2057&QueryID=MgnBFo7ah0&respos=1







__________
Kenji

(


Messages postés
22
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
14 août 2008

Bonjour

et merci pour le code, il marche parfaitement bien :D

J'ai essayé de l'adapter en ajoutant la date de reception et le nom de l'expediteur.

J'arrive a avoir le nom de l'expediteur mais pas la date

Voici le code qui fonctionne :
ItemOutputFileName = OutputDirectory & Item.SenderName & "-" & Item.Subject & ".msg"

Par contre si je fait
ItemOutputFileName = OutputDirectory & Item.ReceivedTime & "-" & Item.SenderName & "-" & Item.Subject & ".msg"
Je n'ai pas de message d'erreur mais j'ai pas non plus de copie du message dans mon répertoire

Serait-ce abuser de demander pourquoi ?

Merci d'avance

La route du savoir est plus longue que la muraille de Chine
Messages postés
22
Date d'inscription
mercredi 12 février 2003
Statut
Membre
Dernière intervention
14 août 2008

Merci pour le coup de main, je vais ajouter une fonction replace pour les caracteres non autorisés dans les sujets

La route du savoir est plus longue que la muraille de Chine