Bjr, une question récurrente avec bcp de réponses mais contexte un peu
différent
Le contetxe
envoyer des mails depuis excel avec Outlook 2003 sous XP pro
- ce qui marche
génération du mail
- ce qui ne marche pas
envoi du mail (il reste dans la boite d'envoi) tant que outlook n'est pas
ouvert réellement (en clair excel est ouvert mais pas outlook)
- Les macros qui tournent
Sub SendMail_Outlook()
'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools /
Reference / Cocher "Microsoft Outlook Library"
suj = "Envoi automatique merci de ne pas répondre"
cont = "Veuillez trouvez en pièce jointe le fichier attendu"
adfic = "E:\Perso\Nuit St Georges.xls"
adfic1 = "E:\Perso\mode ss echec VISTA.txt"
dest = "denislebreton@gmail.com; lebretondenis@gmail.fr" 'plusieurs
destinataires séparés par un point virgule ;
'destcc = "denis.lebreton@laposte.fr"
destbcc = "denis.lebreton@voila.fr"
Set myOlApp = CreateObject("Outlook.Application")
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = dest 'destinataire
.CC = destcc 'destinataire en copie
.BCC = destbcc 'destinataire en copie cachée
.Subject = suj 'le sujet du mail
.Body = cont 'le corps du mail
.Attachments.Add adfic 'la pièce jointe
.Attachments.Add adfic1 'une autre pièce jointe
'.Display ' pour visualiser le mail avant envoi
.Send ' pour envoyer le mail sans visualiser
'On peut switcher entre .send et .display selon que l'on veut envoyer le
mail (send) ou seulement le préparer et le vérifier(display)
End With
End Sub
Sub Quit_Outlook()
'Demander à Excel de Quitter Outlook
Set myOlApp = CreateObject("Outlook.Application")
myOlApp.Quit
End Sub
Bien sûr, le sujet, le corps du message les pièces jointes les destinataires
peuvent être passés en paramètre
Ps avec "YesXpress.msi" et "ClickYesSetup.exe" je n'ai pas de problème de
blocage
Mais comment ouvrir Outlook pour que les mail partent ?
Merci pour votre intérêt porté à ce sujet et les éventuelles réponses
Denis
Non ce problème n'est pas lié à la constitution du mail (destinataire unique ou multiples, avec ou sans pièce jointe, mais au fait que Outlook n'est pas actif , je cherche donc à activer Outlook (que je ferme après) L'objectif est d'envoyer un mail (ou plusieurs pendant la nuit par tache planifiée) la tache ouvre un excel, avec une macro auto_open, la macro fait un triatement, puis envoie le mail dans la foulée, excel se referme et le tour est joué. Sauf que pour le moment je dois laisser Outlook ouvert pour que le mail parte. D'ou ma question comment activer Outlook par VBA ! Merci pour la piste Denis
Bonjour denis le breton, Je pense que ton problème vient du fait que quand il y a plusieurs destinataires, il ne faut pas les mettre dans la propriété To mais les ajouter 1 par 1 par la méthode .Recipients.Add(Destinataire).
Corto
Bjr, une question récurrente avec bcp de réponses mais contexte un peu différent Le contetxe envoyer des mails depuis excel avec Outlook 2003 sous XP pro - ce qui marche génération du mail - ce qui ne marche pas envoi du mail (il reste dans la boite d'envoi) tant que outlook n'est pas ouvert réellement (en clair excel est ouvert mais pas outlook)
- Les macros qui tournent Sub SendMail_Outlook() 'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library" suj = "Envoi automatique merci de ne pas répondre" cont = "Veuillez trouvez en pièce jointe le fichier attendu" adfic = "E:PersoNuit St Georges.xls" adfic1 = "E:Persomode ss echec VISTA.txt" dest = "; " 'plusieurs destinataires séparés par un point virgule ; 'destcc = "" destbcc = "" Set myOlApp = CreateObject("Outlook.Application") Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem) With olmail .To = dest 'destinataire .CC = destcc 'destinataire en copie .BCC = destbcc 'destinataire en copie cachée .Subject = suj 'le sujet du mail .Body = cont 'le corps du mail .Attachments.Add adfic 'la pièce jointe .Attachments.Add adfic1 'une autre pièce jointe '.Display ' pour visualiser le mail avant envoi .Send ' pour envoyer le mail sans visualiser 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display) End With End Sub Sub Quit_Outlook() 'Demander à Excel de Quitter Outlook Set myOlApp = CreateObject("Outlook.Application") myOlApp.Quit End Sub
Bien sûr, le sujet, le corps du message les pièces jointes les destinataires peuvent être passés en paramètre Ps avec "YesXpress.msi" et "ClickYesSetup.exe" je n'ai pas de problème de blocage
Mais comment ouvrir Outlook pour que les mail partent ?
Merci pour votre intérêt porté à ce sujet et les éventuelles réponses Denis
Non ce problème n'est pas lié à la constitution du mail (destinataire unique
ou multiples, avec ou sans pièce jointe, mais au fait que Outlook n'est pas
actif , je cherche donc à activer Outlook (que je ferme après)
L'objectif est d'envoyer un mail (ou plusieurs pendant la nuit par tache
planifiée)
la tache ouvre un excel, avec une macro auto_open, la macro fait un
triatement, puis envoie le mail dans la foulée, excel se referme et le tour
est joué. Sauf que pour le moment je dois laisser Outlook ouvert pour que le
mail parte. D'ou ma question comment activer Outlook par VBA !
Merci pour la piste
Denis
Bonjour denis le breton,
Je pense que ton problème vient du fait que quand il y a plusieurs
destinataires, il ne faut pas les mettre dans la propriété To mais les
ajouter 1 par 1 par la méthode .Recipients.Add(Destinataire).
Corto
Bjr, une question récurrente avec bcp de réponses mais contexte un peu
différent
Le contetxe
envoyer des mails depuis excel avec Outlook 2003 sous XP pro
- ce qui marche
génération du mail
- ce qui ne marche pas
envoi du mail (il reste dans la boite d'envoi) tant que outlook n'est pas
ouvert réellement (en clair excel est ouvert mais pas outlook)
- Les macros qui tournent
Sub SendMail_Outlook()
'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools /
Reference / Cocher "Microsoft Outlook Library"
suj = "Envoi automatique merci de ne pas répondre"
cont = "Veuillez trouvez en pièce jointe le fichier attendu"
adfic = "E:PersoNuit St Georges.xls"
adfic1 = "E:Persomode ss echec VISTA.txt"
dest = "denislebreton@gmail.com; lebretondenis@gmail.fr" 'plusieurs
destinataires séparés par un point virgule ;
'destcc = "denis.lebreton@laposte.fr"
destbcc = "denis.lebreton@voila.fr"
Set myOlApp = CreateObject("Outlook.Application")
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = dest 'destinataire
.CC = destcc 'destinataire en copie
.BCC = destbcc 'destinataire en copie cachée
.Subject = suj 'le sujet du mail
.Body = cont 'le corps du mail
.Attachments.Add adfic 'la pièce jointe
.Attachments.Add adfic1 'une autre pièce jointe
'.Display ' pour visualiser le mail avant envoi
.Send ' pour envoyer le mail sans visualiser
'On peut switcher entre .send et .display selon que l'on veut envoyer le
mail (send) ou seulement le préparer et le vérifier(display)
End With
End Sub
Sub Quit_Outlook()
'Demander à Excel de Quitter Outlook
Set myOlApp = CreateObject("Outlook.Application")
myOlApp.Quit
End Sub
Bien sûr, le sujet, le corps du message les pièces jointes les destinataires
peuvent être passés en paramètre
Ps avec "YesXpress.msi" et "ClickYesSetup.exe" je n'ai pas de problème de
blocage
Mais comment ouvrir Outlook pour que les mail partent ?
Merci pour votre intérêt porté à ce sujet et les éventuelles réponses
Denis
Non ce problème n'est pas lié à la constitution du mail (destinataire unique ou multiples, avec ou sans pièce jointe, mais au fait que Outlook n'est pas actif , je cherche donc à activer Outlook (que je ferme après) L'objectif est d'envoyer un mail (ou plusieurs pendant la nuit par tache planifiée) la tache ouvre un excel, avec une macro auto_open, la macro fait un triatement, puis envoie le mail dans la foulée, excel se referme et le tour est joué. Sauf que pour le moment je dois laisser Outlook ouvert pour que le mail parte. D'ou ma question comment activer Outlook par VBA ! Merci pour la piste Denis
Bonjour denis le breton, Je pense que ton problème vient du fait que quand il y a plusieurs destinataires, il ne faut pas les mettre dans la propriété To mais les ajouter 1 par 1 par la méthode .Recipients.Add(Destinataire).
Corto
Bjr, une question récurrente avec bcp de réponses mais contexte un peu différent Le contetxe envoyer des mails depuis excel avec Outlook 2003 sous XP pro - ce qui marche génération du mail - ce qui ne marche pas envoi du mail (il reste dans la boite d'envoi) tant que outlook n'est pas ouvert réellement (en clair excel est ouvert mais pas outlook)
- Les macros qui tournent Sub SendMail_Outlook() 'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library" suj = "Envoi automatique merci de ne pas répondre" cont = "Veuillez trouvez en pièce jointe le fichier attendu" adfic = "E:PersoNuit St Georges.xls" adfic1 = "E:Persomode ss echec VISTA.txt" dest = "; " 'plusieurs destinataires séparés par un point virgule ; 'destcc = "" destbcc = "" Set myOlApp = CreateObject("Outlook.Application") Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem) With olmail .To = dest 'destinataire .CC = destcc 'destinataire en copie .BCC = destbcc 'destinataire en copie cachée .Subject = suj 'le sujet du mail .Body = cont 'le corps du mail .Attachments.Add adfic 'la pièce jointe .Attachments.Add adfic1 'une autre pièce jointe '.Display ' pour visualiser le mail avant envoi .Send ' pour envoyer le mail sans visualiser 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display) End With End Sub Sub Quit_Outlook() 'Demander à Excel de Quitter Outlook Set myOlApp = CreateObject("Outlook.Application") myOlApp.Quit End Sub
Bien sûr, le sujet, le corps du message les pièces jointes les destinataires peuvent être passés en paramètre Ps avec "YesXpress.msi" et "ClickYesSetup.exe" je n'ai pas de problème de blocage
Mais comment ouvrir Outlook pour que les mail partent ?
Merci pour votre intérêt porté à ce sujet et les éventuelles réponses Denis
denis le breton
Le site de RDB est très complet et je l'ai visité ou survolé tant sa complétude semble importante, toutefois je n'y pas trouvé la réponse car bien que cela ne soit pas précisé l'hypothèse d'excel et de outlook ouvert est bien présente. Denis
Bonsour® denis le breton avec ferveur ;o))) vous nous disiez :
Bjr, une question récurrente avec bcp de réponses
1: Peu importe le programme de messagerie que vous utilisez (utilisation du serveur SMTP). 2: Peu importe la version Office que vous utilisez (97… 2007) 3: Vous pouvez envoyer une plage / une feuille dans le corps du message (certains programmes de courrier ne peut pas le faire) 4: Vous pouvez envoyer less fichier que vous voulez (Word, PDF, PowerPoint, fichiers TXT,….) 5: pas de warning, vraiment un plus si vous envoyez une grande quantité de courrier dans une boucle.
Le site de RDB est très complet et je l'ai visité ou survolé tant sa
complétude semble importante, toutefois je n'y pas trouvé la réponse car bien
que cela ne soit pas précisé l'hypothèse d'excel et de outlook ouvert est
bien présente.
Denis
Bonsour® denis le breton avec ferveur ;o))) vous nous disiez :
Bjr, une question récurrente avec bcp de réponses
1: Peu importe le programme de messagerie que vous utilisez (utilisation du serveur SMTP).
2: Peu importe la version Office que vous utilisez (97… 2007)
3: Vous pouvez envoyer une plage / une feuille dans le corps du message (certains programmes de courrier ne peut pas le faire)
4: Vous pouvez envoyer less fichier que vous voulez (Word, PDF, PowerPoint, fichiers TXT,….)
5: pas de warning, vraiment un plus si vous envoyez une grande quantité de courrier dans une boucle.
Vous devez être connecté à Internet lorsque vous lancez cette procédure.
http://www.rondebruin.nl/cdo.htm
voir aussi avec profit tout ce qui existe dans cette page :
Example Code for sending mail from Excel
http://www.rondebruin.nl/sendmail.htm
Le site de RDB est très complet et je l'ai visité ou survolé tant sa complétude semble importante, toutefois je n'y pas trouvé la réponse car bien que cela ne soit pas précisé l'hypothèse d'excel et de outlook ouvert est bien présente. Denis
Bonsour® denis le breton avec ferveur ;o))) vous nous disiez :
Bjr, une question récurrente avec bcp de réponses
1: Peu importe le programme de messagerie que vous utilisez (utilisation du serveur SMTP). 2: Peu importe la version Office que vous utilisez (97… 2007) 3: Vous pouvez envoyer une plage / une feuille dans le corps du message (certains programmes de courrier ne peut pas le faire) 4: Vous pouvez envoyer less fichier que vous voulez (Word, PDF, PowerPoint, fichiers TXT,….) 5: pas de warning, vraiment un plus si vous envoyez une grande quantité de courrier dans une boucle.
Bonjour. Essaie : Shell "OUTLOOK.EXE" Cordialement. Daniel "denis le breton" a écrit dans le message de news:
Le site de RDB est très complet et je l'ai visité ou survolé tant sa complétude semble importante, toutefois je n'y pas trouvé la réponse car bien que cela ne soit pas précisé l'hypothèse d'excel et de outlook ouvert est bien présente. Denis
Bonsour® denis le breton avec ferveur ;o))) vous nous disiez :
Bjr, une question récurrente avec bcp de réponses
1: Peu importe le programme de messagerie que vous utilisez (utilisation du serveur SMTP). 2: Peu importe la version Office que vous utilisez (97. 2007) 3: Vous pouvez envoyer une plage / une feuille dans le corps du message (certains programmes de courrier ne peut pas le faire) 4: Vous pouvez envoyer less fichier que vous voulez (Word, PDF, PowerPoint, fichiers TXT,..) 5: pas de warning, vraiment un plus si vous envoyez une grande quantité de courrier dans une boucle.
Bonjour.
Essaie :
Shell "OUTLOOK.EXE"
Cordialement.
Daniel
"denis le breton" <denislebreton@discussions.microsoft.com> a écrit dans le
message de news: A0C1C6D5-9756-4E9F-893E-EED405FA12FF@microsoft.com...
Le site de RDB est très complet et je l'ai visité ou survolé tant sa
complétude semble importante, toutefois je n'y pas trouvé la réponse car
bien
que cela ne soit pas précisé l'hypothèse d'excel et de outlook ouvert est
bien présente.
Denis
Bonsour® denis le breton avec ferveur ;o))) vous nous disiez :
Bjr, une question récurrente avec bcp de réponses
1: Peu importe le programme de messagerie que vous utilisez (utilisation
du serveur SMTP).
2: Peu importe la version Office que vous utilisez (97. 2007)
3: Vous pouvez envoyer une plage / une feuille dans le corps du message
(certains programmes de courrier ne peut pas le faire)
4: Vous pouvez envoyer less fichier que vous voulez (Word, PDF,
PowerPoint, fichiers TXT,..)
5: pas de warning, vraiment un plus si vous envoyez une grande quantité
de courrier dans une boucle.
Vous devez être connecté à Internet lorsque vous lancez cette procédure.
http://www.rondebruin.nl/cdo.htm
voir aussi avec profit tout ce qui existe dans cette page :
Example Code for sending mail from Excel
http://www.rondebruin.nl/sendmail.htm
Bonjour. Essaie : Shell "OUTLOOK.EXE" Cordialement. Daniel "denis le breton" a écrit dans le message de news:
Le site de RDB est très complet et je l'ai visité ou survolé tant sa complétude semble importante, toutefois je n'y pas trouvé la réponse car bien que cela ne soit pas précisé l'hypothèse d'excel et de outlook ouvert est bien présente. Denis
Bonsour® denis le breton avec ferveur ;o))) vous nous disiez :
Bjr, une question récurrente avec bcp de réponses
1: Peu importe le programme de messagerie que vous utilisez (utilisation du serveur SMTP). 2: Peu importe la version Office que vous utilisez (97. 2007) 3: Vous pouvez envoyer une plage / une feuille dans le corps du message (certains programmes de courrier ne peut pas le faire) 4: Vous pouvez envoyer less fichier que vous voulez (Word, PDF, PowerPoint, fichiers TXT,..) 5: pas de warning, vraiment un plus si vous envoyez une grande quantité de courrier dans une boucle.
Merci Merci ! entre temps je m'étais orienté vers cette solution qui frise la simplicité Voici la solution complète qui peut servir éventuellement à d'autre '***** Sub Auto_open() 'pour le lancement automatique stAppName = "C:Program FilesMicrosoft OfficeOffice11OUTLOOK.EXE" Call Shell(stAppName, 1)' pour l'ouverture d'outlook suj = "Envoi automatique merci de ne pas répondre" 'le sujet du mail cont = "Veuillez trouvez en pièce jointe le fichier attendu" 'le corps du mail adfic = "E:PersoNuit St Georges.xls" 'la première pièce jointe adfic1 = "E:Persomode ss echec VISTA.txt" ' la seconde pièce jointe (si besoin) dest = "; " ' les destinataires 'destcc = "" ' les destinataires en copie destbcc = "" ' les destinataires en copie cachée 'ces variables peuvent être définies ailleurs ou prises dans des cellules 'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library" Set myOlApp = CreateObject("Outlook.Application")
Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String
Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem) With olmail .To = dest .CC = destcc .BCC = destbcc .Subject = suj .Body = cont .Attachments.Add adfic .Attachments.Add adfic1 '.Display .Send 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display) End With ' je patiente 5 minutes 'pour permettre l'envoi du mail Application.Wait Now + TimeValue("0:05:00")
Set myOlApp = CreateObject("Outlook.Application") myOlApp.Quit ' je ferme outlook Set ApplicationExcel = Nothing 'Libère la mémoire Application.Quit 'Quitte Excel End Sub '******
Bonjour. Essaie : Shell "OUTLOOK.EXE" Cordialement. Daniel
Merci Merci !
entre temps je m'étais orienté vers cette solution qui frise la simplicité
Voici la solution complète qui peut servir éventuellement à d'autre
'*****
Sub Auto_open() 'pour le lancement automatique
stAppName = "C:Program FilesMicrosoft OfficeOffice11OUTLOOK.EXE"
Call Shell(stAppName, 1)' pour l'ouverture d'outlook
suj = "Envoi automatique merci de ne pas répondre" 'le sujet du mail
cont = "Veuillez trouvez en pièce jointe le fichier attendu" 'le corps du mail
adfic = "E:PersoNuit St Georges.xls" 'la première pièce jointe
adfic1 = "E:Persomode ss echec VISTA.txt" ' la seconde pièce jointe (si
besoin)
dest = "denislebreton@gmail.com; lebretondenis@gmail.fr" ' les destinataires
'destcc = "denislebreton@laposte.fr" ' les destinataires en copie
destbcc = "lebretondenis@voila.fr" ' les destinataires en copie cachée
'ces variables peuvent être définies ailleurs ou prises dans des cellules
'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools /
Reference /
Cocher "Microsoft Outlook Library"
Set myOlApp = CreateObject("Outlook.Application")
Dim ol As New Outlook.Application
Dim olmail As MailItem
Dim CurrFile As String
Set ol = New Outlook.Application
Set olmail = ol.CreateItem(olMailItem)
With olmail
.To = dest
.CC = destcc
.BCC = destbcc
.Subject = suj
.Body = cont
.Attachments.Add adfic
.Attachments.Add adfic1
'.Display
.Send
'On peut switcher entre .send et .display selon que l'on veut envoyer le
mail (send) ou seulement le préparer et le vérifier(display)
End With
' je patiente 5 minutes 'pour permettre l'envoi du mail
Application.Wait Now + TimeValue("0:05:00")
Set myOlApp = CreateObject("Outlook.Application")
myOlApp.Quit ' je ferme outlook
Set ApplicationExcel = Nothing 'Libère la mémoire
Application.Quit 'Quitte Excel
End Sub
'******
Bonjour.
Essaie :
Shell "OUTLOOK.EXE"
Cordialement.
Daniel
Merci Merci ! entre temps je m'étais orienté vers cette solution qui frise la simplicité Voici la solution complète qui peut servir éventuellement à d'autre '***** Sub Auto_open() 'pour le lancement automatique stAppName = "C:Program FilesMicrosoft OfficeOffice11OUTLOOK.EXE" Call Shell(stAppName, 1)' pour l'ouverture d'outlook suj = "Envoi automatique merci de ne pas répondre" 'le sujet du mail cont = "Veuillez trouvez en pièce jointe le fichier attendu" 'le corps du mail adfic = "E:PersoNuit St Georges.xls" 'la première pièce jointe adfic1 = "E:Persomode ss echec VISTA.txt" ' la seconde pièce jointe (si besoin) dest = "; " ' les destinataires 'destcc = "" ' les destinataires en copie destbcc = "" ' les destinataires en copie cachée 'ces variables peuvent être définies ailleurs ou prises dans des cellules 'Avant de lancer cette macro, Dans l'éditeur VBA: Faire Menu / Tools / Reference / Cocher "Microsoft Outlook Library" Set myOlApp = CreateObject("Outlook.Application")
Dim ol As New Outlook.Application Dim olmail As MailItem Dim CurrFile As String
Set ol = New Outlook.Application Set olmail = ol.CreateItem(olMailItem) With olmail .To = dest .CC = destcc .BCC = destbcc .Subject = suj .Body = cont .Attachments.Add adfic .Attachments.Add adfic1 '.Display .Send 'On peut switcher entre .send et .display selon que l'on veut envoyer le mail (send) ou seulement le préparer et le vérifier(display) End With ' je patiente 5 minutes 'pour permettre l'envoi du mail Application.Wait Now + TimeValue("0:05:00")
Set myOlApp = CreateObject("Outlook.Application") myOlApp.Quit ' je ferme outlook Set ApplicationExcel = Nothing 'Libère la mémoire Application.Quit 'Quitte Excel End Sub '******
Bonjour. Essaie : Shell "OUTLOOK.EXE" Cordialement. Daniel