Feuille générant de multiples courriels Outlook

Ben78

XLDnaute Nouveau
Bonsoir,

fidèle lecteur depuis plusieurs années je me suis toujours débrouillé seul en m'inspirant des solutions précédemment proposées... mais là je sèche même après deux jours de requêtes intensive dans le moteur de recherche ... aussi je me permets de vous soumettre ma question.

En l’occurrence mon projet est de proposer une première feuille intégrant plusieurs listes de choix permettant par concaténation de rédiger le corps d'un courrier électronique. En l’occurrence cette partie ne me pose pas de souci et j'arrive a obtenir le sujet et le corps de mon mail dans deux cellules. Cette feuille permet de saisir de 1 à 10 adresses mails de destinataires.

Là où je coince c'est que je souhaite qu'en cliquant sur un bouton, Outlook propose autant de mails que d'adresse mails ont été saisies.

En parcourant le forum et notamment le wiki j'ai trouvé la macro suivante;

Sub creationMailEtLienHypertexte()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.mailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Set olItem = olApp.createItem(olMailItem)
With olItem
.To = "forum@xld.fr"
.Subject = "Le titre du message"
.Body = "http://www.excel-downloads.com" & vbLf & "monMail@xld.fr"
.Display
.Save
.send
End With
Set olItem = Nothing
Set olApp = Nothing
End Sub

J'ai bien réussi à la faire fonctionner, et à supprimer les notions de .Save .send , pour laisser le soin à mon utilisateur de relire et envoyer son mail, par contre je ne vois pas quelle partie modifier pour que la macro aille chercher les adresses mails; créé un mail par destinataire; et intègre le corps de texte qui aura été préalablement défini.

Je vous remercie par avance de vos expertises.
Ben
 

Staple1600

XLDnaute Barbatruc
Re : Feuille générant de multiples courriels Outlook

Bonsoir à tous

Ben78
fidèle lecteur depuis plusieurs années
certes mais ajouterai-je ... à la mémoire infidèle ou capricieuse ;)
car point de fichier exemple joint dans ta discussion, ce qu'un lecteur fidèle sait pourtant être la base d'une discussion qui commence sous les meilleures auspices ;)

PS: A vue de nez néanmoins , je pense qu'on devrait se diriger vers de la boucle, de l'Array et du Split pour commencer ;)
 

Ben78

XLDnaute Nouveau
Re : Feuille générant de multiples courriels Outlook

Bonjour,

comme évoqué voici mon exemple, sur lequel je n'arrive pas a visualiser comment faire le lien entre la macro et les éléments repris du tableau.

Bien cordialement
Ben
 

Pièces jointes

  • Creation-mail.xlsm
    18.1 KB · Affichages: 45

Ben78

XLDnaute Nouveau
Re : Feuille générant de multiples courriels Outlook

Re bonjour,

en continuant à chercher j'ai amélioré mon fichier et réussi à reprendre les données de ma feuille... en pointant vers cette dernière par ActiveSheet.Range("B14").Value ... (les macros quand on en fait pas tous les jours... c'est dur de s'y remettre...:eek: ).

Le code donne donc:

Private Sub CommandButton1_Click()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.mailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Set olItem = olApp.createItem(olMailItem)
With olItem
.To = ActiveSheet.Range("B14").Value
.Subject = ActiveSheet.Range("B9").Value
.Body = ActiveSheet.Range("B10").Value
.Display
End With
Set olItem = Nothing
Set olApp = Nothing
End Sub


Maintenant reste que le sujet de la boucle pour tous les destinataires, si vous avez des idées je suis preneur.

Ben
 

Pièces jointes

  • Creation-mailV2.xlsm
    20.2 KB · Affichages: 40

Staple1600

XLDnaute Barbatruc
Re : Feuille générant de multiples courriels Outlook

Bonsoir à tous, Ben78, Jean-Marcel

Une variante ( qui utilise un tableau (Array) et de la boucle et finalement pas de Split au programme)
Ici on n'envoie qu'un seul email en utilisant le champ BBC
(Donc chaque destinataire recevra le même mail sans savoir quels autres destinataires l'auront recu.)
NB: Non testé également 'pas d'Outlook sous la main)
Code:
Private Sub CommandButton1_Click()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.mailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Dim x(), i%, tmp$, destinataires$
x = Range(Cells(14, 2), Cells(Rows.Count, 2).End(xlUp)).Value
For i = LBound(x, 1) To UBound(x, 1)
tmp = tmp & ";" & x(i, 1)
Next i
destinataires = Mid(tmp, 2, 9 ^ 9)

Set olItem = olApp.createItem(olMailItem)

With olItem
    .BBC = destinaires
    .Subject = ActiveSheet.Range("B9").Text
    .Body = ActiveSheet.Range("B10").Text
    .Display
End With

Set olItem = Nothing
Set olApp = Nothing
End Sub
End Sub
 
G

Guest

Guest
Re : Feuille générant de multiples courriels Outlook

Bonjour à chacun:

@staple:) et si à défaut de Split nous métions un Join?
Code:
 x = Range(Cells(14, 2), Cells(Rows.Count, 2).End(xlUp)).Value
 destinataires = Join(Application.Transpose(x), ";")

A+++ L'ami:)
A+++Jean-Marcel
A+ à tous
 

Staple1600

XLDnaute Barbatruc
Re : Feuille générant de multiples courriels Outlook

Bonsoir Hasco ;)


J'étais obligé de boucler ;)
PS: A vue de nez néanmoins , je pense qu'on devrait se diriger vers de la boucle, de l'Array et du Split pour commencer
Merci de m'avoir hasticoté la mémoire ;).

PS: Pendant que je t'ai sous le coude, tu peux tester, stp, si tu disposes d'Outlook ?

NB: Et pourtant j'ai déjà utilisé Join. C'est pas pas beau de vieillir ;)

Je remets le code avec ta jointure ;)
Private Sub CommandButton1_Click()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.mailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Dim x(), i%, tmp$, destinataires$
x = Range(Cells(14, 2), Cells(Rows.Count, 2).End(xlUp)).Value
destinataires = Join(Application.Transpose(x), ";")

Set olItem = olApp.createItem(olMailItem)
With olItem
.BCC = destinataires
.Subject = ActiveSheet.Range("B9").Text
.Body = ActiveSheet.Range("B10").Text
.Display
End With
Set olItem = Nothing
Set olApp = Nothing
End Sub
End Sub
 
Dernière édition:
G

Guest

Guest
Re : Feuille générant de multiples courriels Outlook

Re,

monamilagrafe à dit:
C'est pas pas beau de vieillier
A qui'lditus:) les mots me...Ah oui!..manquent, (j'allais oublier) pour dire à quel point c'est pas beau;)

A tous les vilains pas beaux que je salue, je souhaite une bonne soirée!!!
A+++ l'ami
 

Ben78

XLDnaute Nouveau
Re : Feuille générant de multiples courriels Outlook

Bonsoir;

un grand merci à chacun d'entre vous qui m'avez bien aidé, et surtout permis de comprendre comment faire.

Voici la macro finalisée, avec 2 petites bidouilles retouchées (destinataires au lieu de destinaires, et BCC à la place de Bcc) et l'ajout d'une pièce jointe intitulé CGA.pdf placée dans le même répertoire que le fichier.

Merci encore
Ben

Private Sub CommandButton1_Click()
Dim olApp As New Outlook.Application
Dim olItem As Outlook.MailItem
' necessite d'activer la reference microsoft outlook 10.0 object library
Dim x(), i%, tmp$, destinataires$
x = Range(Cells(14, 2), Cells(Rows.Count, 2).End(xlUp)).Value
destinataires = Join(Application.Transpose(x), ";")

Set olItem = olApp.CreateItem(olMailItem)
With olItem
.BCC = destinataires
.Subject = ActiveSheet.Range("B9").Text
.Body = ActiveSheet.Range("B10").Text
.Attachments.Add ThisWorkbook.Path & "\" & "CGA.Pdf"
.Display
End With
Set olItem = Nothing
Set olApp = Nothing
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Feuille générant de multiples courriels Outlook

Re

Houps, désolé pour la coquille BBC
(alors que je savais que c'était Blind Carbon Copy donc BCC ;))

Sinon tu peux supprimer ceci* dans les déclarations
Dim x(), i%, tmp$, destinataires$
pour ne garder que
Dim x(), destinataires$

*:
puisque désormais ces variables ne sont plus utilisées dans la macro.
 
Dernière édition:
G

Guest

Guest
Re : Feuille générant de multiples courriels Outlook

Re,

staple à dit:
Tu as vu mon édition et ma supplique à ton endroit

Oui désolé de n'avoir pas précisé que j'avais une macro du même modèle, testée et approuvée par Outlook:)

Code:
Et pourtant j'ai déjà utilisé Join.

Oui je me souviens d'une belle discussion(avec toi en autres) sur le sujet (que je n'arrive pas à retrouver).

Pour le coude douloureux, laisse tomber les citrons verts...arf

A+
 

Discussions similaires

Réponses
7
Affichages
540
Réponses
2
Affichages
593

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
314 655
Messages
2 111 605
Membres
111 217
dernier inscrit
aladinkabeya2