cs_Liro
Messages postés159Date d'inscriptionjeudi 7 septembre 2006StatutMembreDernière intervention30 septembre 2011
-
11 avril 2008 à 13:45
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 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).
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 11 avril 2008 à 23:26
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
pile_poil
Messages postés682Date d'inscriptionvendredi 6 avril 2007StatutMembreDernière intervention 4 août 20126 11 avril 2008 à 14:39
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 !
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201822 12 avril 2008 à 13:12
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