Si pour des raisons multiples vous avez besoin d’extraire les e-mails de votre boite Outlook que ce soit un compte Exchange ou non (.ost ou .pst) alors cet article est fait pour vous. En plus si vous suivez toutes ces étapes vous n’aurez plus de souci à vous faire mais plus qu’à extraire vos e-mails.
Dans un premier temps, la macro qui va suivre a été testé sur outlook 2010 avec des .OST & .PST sur un windows 7 64 Bits.
– Téléchargez la macro-VbaProject.otm : VbaProject
– Fermer Outlook
– Extraire le fichier et le Déposer dans le dossier suivant :
- Pour Seven : C:\Users\Nom-Dutilisateur\AppData\Roaming\Microsoft\Outlook
- Pour XP : C :\Documents and Settings\ Nom-Dutilisateur \Application Data\Microsoft\Outlook
Détails de la macro :
– Permet d’extraire les mails qui se trouvent sur le dossier actuellement ouvert.
Nom de la macro : MailDossierCourant
– Permet d’extraire les mails qui sont sélectionnés.
Nom de la macro : LanceSurSelection
– Permet d’extraire les mails qui se trouvent dans le dossier Boite de réception.
Nom de la macro : MailBoiteReception
Ne vous inquiétez pas, le mail reste belle et bien dans votre outlook (.ost ou .pst), ce n’est qu’une copie qui est extraite. Afin de prendre en compte pas mal de caractères bizarre, ou une longueur de chaine trop longue (généralement dans l’objet), ces « problèmes » sont traités, soit on tronque l’objet, soit les caractères sont remplacés, ou quand il n’y a pas d’objet on renomme bien spécifiquement. A vous d’adapter après si le nom de l’export ne vous convient pas :
Cette macro nomme les e-mails extrait de cette façon : ANNEE_MOI_JOURS_HEURES_MINUTES_SECONDES_OBJET
L’export ce fait dans le dossier : « C:\temp\ » que vous pouvez remplacer par le chemin que vous souhaitez sans avoir besoin de connaitre le développement. Pour ce faire, le plus rapide est d’appuyer sur : ALT + F11 de vous diriger vers le module : « Export » et cherchez la ligne : «C:\temp\ » à fin de le remplacer par le chemin de destination de votre choix. Attention n’oublier pas le dernier « \ » à la fin qui est extrêmement très important.
Je tenais à remercier mon collègue Sylvain pour la personnalisation de cette macro.
Passons aux choses sérieuses, et utilisons cette fameuse Macro.
– Ouvrez outlook
– Activez le Menu Développeur dans le ruban d’outlook :
- Fichier
- Options
- Personnaliser le Ruban
- Cocher la case Développeur
Maintenant que le menu : Développeur apparait dans le ruban, allez dans ce menu, puis dans sécurité macro :

Dans la nouvelle fenêtre : Centre de gestion de la confidentialité :
– Dans Paramètres des macros
– Cochez : Activer toutes les macros (non recommandé, exécution possible de code potentiellement dangereux) :

Pour simplifier l’utilisation des macros, vous pouvez personnaliser votre barre de lancement rapide, en y ajoutant des boutons qui seraient liés à vos macros.
Pour cela :
– clic droit sur le ruban

– Personnaliser la barre d’Outils Accès rapide
– En haut du cadre de gauche choisir : Macros
– Sélectionnez la ou les macros dont vous voulez disposer dans votre barre d’accès rapide et cliquez pour chacune sur le bouton AJOUTER en plein milieu.
– Puis si vous voulez ajouter une icône à votre macro, sélectionnez votre macro, puis cliquez sur le bouton Modifier qui se trouve en bas du cadre de droite, choisissez une icône et validez.
– Avec les petites flèches sur la droite, vous pouvez choisir l’ordre d’apparition de vos macros.
– Terminez par valider : Bouton OK

Si vous souhaitez lancer cette macro de façon automatiser, afin de vous aider un peu, voici la commande à exécuter :
outlook.exe /autorun Nomdelamacro
Dans notre cas vous pouvez avoir :
outlook.exe /autorun LanceSurSelection
outlook.exe /autorun MailBoiteReception
outlook.exe /autorun MailDossierCourant
Maintenant Assez parlé, essayez ;).
Sélectionnez un e-mail et lancez la macro : LanceSurSelection
Sélectionnez un Dossier et lancez la macro : MailDossierCourant
Dans ces deux cas, dirigez vous vers votre dossier d’extraction et contemplez ;).
Enjoy !
10 commentaires sur “Macro VBA Outlook pour Extraire les e-mails”
Rien n’est ajouté dans le dossier C:/Temp/ !
Je ne peux modifier le fichier VbaProject.otm
Avez vous le script source ?
Bonjour,
Si si il est possible de le modifier depuis outlook, avec le ALT+F11 …
La source c’est le .otm, et il n’est pas du tout protégé.
Merci pour la réponse.
J’ai reussi lancer la macro (sans la modifier) mais j’ai des erreurs de compilation.
J’utilise Outlook 2010
(J’ai réusi à ouvrir le OTM dans le débogueur)
🙁
Voici le début de la macro :
Sub sav_mail_as_msg(Optional objCurrentMessage As Object)
‘By Oliv’ juillet 2007 pour OUTLOOK 2003
‘ If objCurrentMessage Is Nothing Then Set objCurrentMessage = ActiveInspector.CurrentItem
‘Ici on construit le nom du fichier qui sera créé
Oui oui moi de même, la macro tourne sur mon outlook 2010.
Vous avez le problème dès l’exécution manuelle de la macro ou celle automatique ?
Dans tout les cas, chacune à sa particularité, une où il faut sélectionner un dossier avant de lancer la macro, une autre où il faut sélectionner des mails avant de lancer la macro ….
Avez-vous désactivé la sécurité des macros ?
Bonjour
Je débute avec les macros Outlook 2010, vos macros sont intéressantes.
Mais ne s’ajoute dans le dossier C:/Temp/ ??
Merci beaucoup ! C’est exactement ce que l’on cherchait et sur un outlook 2013 / Windows 7 64b, ça a fonctionné du premier coup.
bonjour,
je souhaite choisir ou enregistrer mes mails, quelle est la partie du code à modifer ?
merci
L’article est désormais mis à jour.
Le lien de téléchargement est à nouveau fonctionnel.
Sinon : http://www.macintom.com/wp/wp-content/uploads/2012/04/VbaProject.zip
Bonjour
Merci pour ce code qui fonctionne sous W10 32b avec OTLK2016 !
Cependant la macro « MailDossierCourant » n’exporte pas les mails stockés dans le serveur Microsoft Exchange…
Pour info, il y a une macro « LanceSurOuvert » qui n’est pas spécifiée dans l’article ; pour que cette macro fonctionne, il faut désactiver la première instruction qui est en commentaire.