VBA outlook+excel [Résolu]

Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
- - Dernière réponse : cs_MPi
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
- 12 avril 2008 à 13:12
Bonjour,

Je souhaiterai à partir:
- d'un fichier excel contenant des adresse mail
- d'un courrier type (email) enregistrer au format *.msg

Ouvrir le fichier msg, compléter les champs destinataire puis envoyer le message.
Recommencer pour toutes les lignes du fichier excel.

Je sais que Office 2003 permet de réaliser un emailing mais j'ai Office 2000.

Je ne sais pas s'il est préférable de coder dans excel ou outlook?
Dans excel il est possible d'ouvrir le fichier msg mais comment compléter le champ destinataire?

La simulation de l'appuie sur les touches n'est pas une bonne solution car si le PC ramme ça n'ira pas (expériences vécues).

Merci pour votre aide,
Liro
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
3
Merci
Pourquoi sont-ils sauvegardés en format .MSG ?

Tu pourrais, à partir d'Excel, chercher les messages directement dans Outlook, et faire ce que tu veux avec en utilisant l'Automation.
Tu peux toujours faire des recherches sur
Outlook.Application

Autrement, si le format MSG est nécessaire, tu peux faire une recherche sur Redemption. C'est une DLL (utilitaire) que tu peux utiliser sous VB pour récupérer le contenu de ces messages. J'ai déjà posé une question à ce sujet il y a quelques mois et je me suis répondu, mais je ne retrouve pas le message en question...

Voici le code que j'avais créé à ce moment avant de laisser tomber par manque de temps...
Sub Read_MSG()
    Dim objApp As New Outlook.Application
    Dim MyNameSpace As Outlook.NameSpace
    Dim Msg As RDOMail, Session As RDOSession
    Dim FileAttached As Variant, strMessage As String
    Dim strDate As String, strPath As String
   
    On Error GoTo Erreur
   
    strPath = "Inscrire le chemin des fichiers MSG plus "  '"E:\Machin"
   
    Set MyNameSpace = objApp.GetNamespace("MAPI")
   
    Set Session = New Redemption.RDOSession
    Session.Logon
   
    strMessage = Dir(strPath & "*.msg")
    While strMessage <> ""
        Set Msg = Session.GetMessageFromMsgFile(strPath & strMessage)
        '*** TODO créer une boucle pour lire tous les fichiers
        Set FileAttached = Msg.Attachments(1)
       
        'ajouter la date et l'heure au nom du fichier
        strDate = Replace(FileAttached.CreationTime, ":", "")
        FileAttached.SaveAsFile strPath & _
                         Left(FileAttached.Filename, Len(FileAttached.Filename) - 4) & _
                                " - " & strDate & ".xls"
        strMessage = Dir
    Wend
   
    Session.Logoff
    Set Session = Nothing
    Set objApp = Nothing
   
    Exit Sub
Erreur:
    MsgBox Err.Number & vbCrLf & Err.Description

End Sub

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de cs_MPi
Messages postés
682
Date d'inscription
vendredi 6 avril 2007
Dernière intervention
4 août 2012
0
Merci
bonjour
personnellement je ferais ça depuis Excel pour la simple raison que je le connais mieux que outlook au niveau VBA
pour les autres questions je n'ai pas de solution toute faite !
Commenter la réponse de pile_poil
Messages postés
159
Date d'inscription
jeudi 7 septembre 2006
Dernière intervention
30 septembre 2011
0
Merci
Bonjour,

MPi² merci pour ton code, en regardant rapidement je crois comprendre que ton code ouvre la session outlook, c'est bien ça?

Dans mon cas de figure tout les logiciel excel, outlook seront déjà ouvert.
Je vais chercher avec Outlook.Application.
Merci

Liro
Commenter la réponse de cs_Liro
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Dernière intervention
23 août 2018
0
Merci
Si tu utilises Outlook.Application pour lire directement les messages dans Outlook, tu n'as pas besoin d'utiliser mon code qui se sert de Redemption.DLL

Tu pourras trouver différents codes qui utilisent Outlook plus simplement sur vbFrance ou ailleurs.

Le code que j'ai mis est pour le cas où tu DOIS lire des messages sauvegardés au format MSG sur le disque dur.

Bonne continuation.

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
Commenter la réponse de cs_MPi

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.