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

Résolu
LSGSERVAL Messages postés 22 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 14 août 2008 - 20 juil. 2007 à 09:02
LSGSERVAL Messages postés 22 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 14 août 2008 - 21 juil. 2007 à 13:11
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

Utilisateur anonyme
20 juil. 2007 à 12:08
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,

----

(
3
Utilisateur anonyme
20 juil. 2007 à 22:42
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

(


3
LSGSERVAL Messages postés 22 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 14 août 2008
20 juil. 2007 à 21:18
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
0
LSGSERVAL Messages postés 22 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 14 août 2008
21 juil. 2007 à 13:11
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
0