Envoie mail a partir de macro Excell via OutlookExpress
misterlick
Messages postés9Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 octobre 2011
-
2 janv. 2007 à 23:26
misterlick
Messages postés9Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 octobre 2011
-
10 janv. 2007 à 00:24
Bonjour
J'essaye d'envoyer des mails apartir de macro Excell.
Excell version 2002 et Outlook Express 6.
J'ai déjà essayé les 2 manieres svtes mais pas de résultats
1 -
Windows("Mai.xls").Activate
ActiveWorkbook.SendMail Recipients:="[mailto:xxxxxxxxx@free.fr xxxxxxxxx@free.fr]", _
Subject:="Test envoie"
2 -
' Dim MonOutlook As Object
' Dim MonMessage As Object
'
' Set MonOutlook = CreateObject("Outlook.Application")
' Set MonMessage = MonOutlook.createitem(0)
' MonMessage.To = "[mailto:xxxxxx@free.fr xxxxxx@free.fr]"
' MonMessage.Cc = "[mailto:xxx@llll.fr xxx@llll.fr]"
' MonMessage.Bcc = ""
' MonMessage.Subject = "Bordereau du mois précédent"
' corps = "Bonjour"
' corps = corps & Chr(13) & Chr(10)
' corps = corps & "Veuillez trouver le bordereau en piece jointe. "
' corps = corps & Chr(13) & Chr(10)
' corps = corps & "Salutations distinguées."
' corps = corps & Chr(13) & Chr(10)
' corps = corps & "Agathe Lickindorf"
' MonMessage.attachements.Add "F:\xxxx\yyyyyy\2007 Février.xls"
' MonMessage.send
' Set MonOutlook = Nothing
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 3 janv. 2007 à 08:49
Salut,
Voici ce que j'ai fait avec ton code et cela fonctionne pour l'envoi :
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.createitem(0)
With MonMessage
.To = [mailto:xxxxx@free.fr xxxxx@free.fr]
.Cc = "[mailto:xxx@llll.fr xxx@llll.fr]"
.Bcc = ""
.Subject = "Bordereau du mois précédent"
.attachments.Add "C:\Attribut.txt"
End With
corps = "Bonjour"
corps = corps & vbCrLf
corps = corps & "Veuillez trouver le bordereau en piece jointe. "
corps = corps & vbCrLf
corps = corps & "Salutations distinguées."
corps = corps & vbCrLf
corps = corps & "Agathe Lickindorf"
MonMessage.send
Set MonOutlook = Nothing
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 3 janv. 2007 à 08:51
Oups, j'ai oublié une ligne(voir en rouge)
With MonMessage
.To = [mailto:xxxxx@free.fr xxxxx@free.fr]
.Cc = "[mailto:xxx@llll.fr xxx@llll.fr]"
.Bcc = ""
.Subject = "Bordereau du mois précédent"
.attachments.Add "C:\Attribut.txt"
End With
corps = "Bonjour"
corps = corps & vbCrLf
corps = corps & "Veuillez trouver le bordereau en piece jointe. "
corps = corps & vbCrLf
corps = corps & "Salutations distinguées."
corps = corps & vbCrLf
corps = corps & "Agathe Lickindorf"
MonMessage.Body = Corps
MonMessage.send
Set MonOutlook = Nothing
cs_Exploreur
Messages postés4821Date d'inscriptionlundi 11 novembre 2002StatutMembreDernière intervention15 novembre 201615 3 janv. 2007 à 08:55
Ben...décidément...Faut que je fasse gaffe aux message 1 seul aurai suffit....lol
Dim MonOutlook As Object
Dim MonMessage As Object
Set MonOutlook = CreateObject("Outlook.Application")
Set MonMessage = MonOutlook.createitem(0)
With MonMessage
.To = "[mailto:xxx@llll.fr xxx@llll.fr]"
.Cc = "[mailto:xxx@llll.fr xxx@llll.fr]"
.Bcc = ""
.Subject = "Bordereau du mois précédent"
.attachments.Add "C:\Attribut.txt"
'Message
corps = "Bonjour"
corps = corps & vbCrLf
corps = corps & "Veuillez trouver le bordereau en piece jointe. "
corps = corps & vbCrLf
corps = corps & "Salutations distinguées."
corps = corps & vbCrLf
corps = corps & "Agathe Lickindorf"
.Body = corps
.send
End With
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 3 janv. 2007 à 11:51
Il faut faire une distinction entre Outlook et Outlook Express.
Ici, un objet ("Outlook.Application") concerne Outlook d'Office.
Une autre façon de procéder est d'utiliser les 2 contrôles MAPI (MAPISession et MAPIMessage)
Crée un Userform qui ne servira qu'à contenir les 2 contrôles.
Dans la liste des contrôles (Composants), choisis les 2 contrôles Microsoft MAPI et incorpore-les sur le UserForm avec leurs noms par défaut.
Ensuite, dans un module, mets les procédures suivantes (Change les noms au besoin)
Sub Appel()
EnvoiMail "Adresse d'Envoi", "C'est le sujet", "Le corps du message", ActiveWorkbook.FullName 'Chemin et nom du classeur
End Sub
Sub EnvoiMail(A As String, Sujet As String, Corps As String, Fichier As String)
UserForm1.MAPISession1.SignOn
With UserForm1.MAPIMessages1
.MsgIndex = -1
.RecipDisplayName = A
.MsgSubject = Sujet
.MsgNoteText = Corps
.AttachmentIndex = 0
.AttachmentPathName = Fichier
.SessionID = UserForm1.MAPISession1.SessionID
.Send
End With
UserForm1.MAPISession1.SignOff
End Sub
MPi
Vous n’avez pas trouvé la réponse que vous recherchez ?
misterlick
Messages postés9Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 octobre 2011 3 janv. 2007 à 22:21
Salut Exploreur
Effectivement comme nous l a dit MPI, je n'ai pas outlook d'office mais outlook Express et je sors en erreur sur la ligne :
Set MonOutlook = CreateObject("Outlook.Application")
avec le message : Un composant activex ne peut pas créer d'objet
Je garde ton code si jamais je n'arrive pas avec Outlook express J'installerai l'autre Outlook.
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 7 janv. 2007 à 00:10
Le fichier se nomme MSMAPI32.OCX
et se trouve dans Windows / System (ou System32)
En fait, je ne sais pas d'où il provient... de Windows, de VB6 ???
Si tu ne le trouves pas sur ton ordi, tu pourrais toujours le copier du bureau et le mettre dans ton répertoire System32. Tu peux certainement le trouver sur Internet aussi.
Ensuite, tu dois l'enregistrer en passant par Menu Démarrer / Exécuter et écrire
regsvr32 MSMAPI32.OCX
misterlick
Messages postés9Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 octobre 2011 8 janv. 2007 à 00:57
Merci
J'ai récupéré msmapi32.ocx sur le PC du boulot (sur lequel j'ai VB6 je pense que c'est pour cela que ce controle est actif)
Je l'ai déjà enregistré + " Menu Démarrer / Exécuter et écrire regsvr32 MSMAPI32.OCX ".
Ca a marché je vais relancé le PC et te tiens informé de la suite.
A+
MLick
misterlick
Messages postés9Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 octobre 2011 8 janv. 2007 à 01:29
Désolé MPI ca ne roule pas terrible
Quand ensuite j essaye d'installer les controles ds un userform j'ai le message svt
"le controle n'a pas été créé car il n'est pas correctement licencié"
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 8 janv. 2007 à 02:35
Hummm...
Ouais, désolé, mais ça doit prendre aussi le fichier MSMAPI32.DEP
Voici ce qu'il contient, du moins en partie
Les fichiers dont il est fait référence doivent aussi être sur le PC dans /System32
Peut-être en faudra-t-il d'autres... (?)
misterlick
Messages postés9Date d'inscriptionjeudi 16 mars 2006StatutMembreDernière intervention13 octobre 2011 10 janv. 2007 à 00:24
J'avance à petits pas
J'ai installé VB6 sur mon PC et maintenant je suis arrivé à mettre les controles MAPIMessages1 et MAPISession1 dans une userform1.
Parcontre, maintenant il ne reconnait pas mapisession1 dans ta ligne de code :
UserForm1.MAPISession1.SignOn
Ca n'avance pas beaucoup, si tu en as mare j'essayerai autrement
Merci déjà de toutes ces infos