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

Messages postés
22
Date d'inscription
mercredi 12 février 2003
Dernière intervention
14 août 2008
- 20 juil. 2007 à 09:02 - Dernière réponse :
Messages postés
22
Date d'inscription
mercredi 12 février 2003
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
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 20 juil. 2007 à 12:08
3
Merci
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,

----

(

Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Meilleure réponse
Messages postés
3181
Date d'inscription
dimanche 15 février 2004
Dernière intervention
9 avril 2017
- 20 juil. 2007 à 22:42
3
Merci
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

(


Merci Charles Racaud 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de Charles Racaud
Messages postés
22
Date d'inscription
mercredi 12 février 2003
Dernière intervention
14 août 2008
- 20 juil. 2007 à 21:18
0
Merci
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
Commenter la réponse de LSGSERVAL
Messages postés
22
Date d'inscription
mercredi 12 février 2003
Dernière intervention
14 août 2008
- 21 juil. 2007 à 13:11
0
Merci
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
Commenter la réponse de LSGSERVAL

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.