VBA outlook+excel [Résolu]

cs_Liro 159 Messages postés jeudi 7 septembre 2006Date d'inscription 30 septembre 2011 Dernière intervention - 11 avril 2008 à 13:45 - Dernière réponse : cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention
- 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
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - 11 avril 2008 à 23:26
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

Merci cs_MPi 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 83 internautes ce mois-ci

Commenter la réponse de cs_MPi
pile_poil 682 Messages postés vendredi 6 avril 2007Date d'inscription 4 août 2012 Dernière intervention - 11 avril 2008 à 14:39
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
cs_Liro 159 Messages postés jeudi 7 septembre 2006Date d'inscription 30 septembre 2011 Dernière intervention - 12 avril 2008 à 11:03
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
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - 12 avril 2008 à 13:12
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.