envoimultiple de maisl avec outlook avec pièce jointe variable->Résolu

lostsysmo

XLDnaute Nouveau
Bonsoir à tous,
voilà je travail avac outlook et régulièrement je dois faire des envois à plusieurs destinataires.

Mon besoin c'est de pouvoir envoyer plusieurs mails (une centaine) à autant de destinataires, chacun avec sa propre pièce jointe et un message, via excel en préparant toutes les variables dans le tableur.

PS:
- Afin de vérifier l'envoi effectif des messages pouvoir recevoir dans outlook une notification de remise du message pour chacun des distinataires;
- Il s'agit là d'envois à des destinataires qui sont suivi dans le cadre de l'alimentaion d'une base de données centralisée.

Voici mon fichier excel:Ce lien n'existe plus
Merci d'avance.
 
Dernière édition:

jpb388

XLDnaute Accro
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Bonjour le forum
a tester
Code:
Option Explicit
' dans la boite de dialogue références, sélectionnez Microsoft outlook 12.0 (ou autre n°de version)
    ' object library
Sub E_Mail()
Dim cel As Range
For Each cel In Feuil1.Range("a2:a" & Feuil1.Range("a" & Rows.Count).End(xlUp).Row)
    traitement cel
Next
End Sub


Sub traitement(cel As Range)
Dim Mon_Outlook As New Outlook.Application
Dim Mon_Message As Outlook.MailItem
Set Mon_Message = Mon_Outlook.CreateItem(olMailItem)
With Mon_Message
    .Subject = "superviseur" 'le sujet
    .Body = cel.Offset(3) 'le corps du message
    .BodyFormat = olFormatHTML 'format du message
    .Recipients.Add cel.Offset(0, 1) 'ajoute du destinataire en A
    .OriginatorDeliveryReportRequested = True 'accusé de reception
    .ReadReceiptRequested = False 'accusé de lecture
    .Attachments.Add cel.Offset(0, 4).Text 'fichier joint
    .CC = cel.Offset(0, 2).Text 'ajoute du destinataire en CC
    .Send
End With
Mon_Outlook.Quit
Set Mon_Message = Nothing
Set Mon_Outlook = Nothing
End Sub
 

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Bonjour,
tout d'abord merci pour la réponse;
Le problème c'est que je suis novice en Excel et je ne sais pas comment faire pour intégrer le code:confused:

Est ce que vous pouvez m'orienter pas à pas comment faire

Merci beaucoup.
 

jpb388

XLDnaute Accro
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

bonjour le forum

logo excel en haut a gauche --> option excel
onglet standard --> cocher afficher l'onglet développeur dans le ruban et OK

alt F11
insertion --> module
copier les macros et les coller dedans
outil -->références
dans la boite de dialogue références, sélectionnez Microsoft outlook 12.0 (ou autre n°de version) object library

dans la feuille de calcul
onglet développeur --> insérer --> contrôles de formulaire -->bouton
après l'avoir dessiner sur la feuille une boite de dialogue s'ouvre choisir la macro e mail

enregistrer l'ensemble sous le format .xlsm
 

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Bonjour jpb388,
Merci pour la réponse et la démarche pour l'insertion du code,

Juste quelques améliorations si c'est possible:
1- Le corps du message n'est pas inséré (quelques essais ont donné que le destinataire est inséré comme message);
2- Je pense que le destinataire (colonne A) n'est pas nécessaire;
3- prévoir une colonne pour l'objet du message comme variable;

Voici mon fichier après insertion du code Ce lien n'existe plus

Merci infiniment.
 
Dernière édition:

jpb388

XLDnaute Accro
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

bonjour le forum
les colonnes n'étant pas les mêmes que sur ton exemple c'est normal que cela ne fonctionne pas
macro rectifié teste et dit la suite
 

Pièces jointes

  • CEompFdHleG_fichier_source_mail_1_.xlsm
    20.5 KB · Affichages: 86

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Rebonjour jbq388,
j'ai testé la macro, elle est parfaite !!!

le fichier que j'ai envoyé correspond à ce que j'ai demandé pour améliorer le code c'est pourquoi j'ai ajouté une colonne pour 'l'objet"(le sujet), de ce fait j'ai pu modifier le code un tout petit peu (en s'inspirant de ton code lui même) pour intégrer le sujet du message comme variable.

Code:
Option Explicit
' dans la boite de dialogue références, sélectionnez Microsoft outlook 12.0 (ou autre n°de version)
    ' object library
Sub E_Mail()
Dim cel As Range
For Each cel In Feuil1.Range("a2:a" & Feuil1.Range("a" & Rows.Count).End(xlUp).Row)
    traitement cel
Next
End Sub


Sub traitement(cel As Range)
Dim Mon_Outlook As New Outlook.Application
Dim Mon_Message As Outlook.MailItem
Set Mon_Message = Mon_Outlook.CreateItem(olMailItem)
With Mon_Message
    .Subject = [U]cel.Offset(0, 3)[/U] 'le sujet
    .Body = cel.Offset(0, 4) 'le corps du message
    .BodyFormat = olFormatHTML 'format du message
    .Recipients.Add cel.Offset(0, 1) 'ajoute du destinataire en A
    .OriginatorDeliveryReportRequested = True 'accusé de reception
    .ReadReceiptRequested = False 'accusé de lecture
    .Attachments.Add cel.Offset(0, 5).Text 'fichier joint
    .CC = cel.Offset(0, 2).Text 'ajoute du destinataire en CC
    .Send
End With
Mon_Outlook.Quit
Set Mon_Message = Nothing
Set Mon_Outlook = Nothing
End Sub

Mille Merci
 
Dernière édition:

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Juste une dernière chose (peut-être),
Comment je pourrai mettre en forme mon corps de message?

Si c'est difficile de faire cela automatiquement, est ce que je peut exploiter ce même code de telle sorte que mes messages ne soit pas automatiquement envoyés mais plutôt placés dans le brouillon (notamment pour de mettre en forme le message; vérifier avant l'envoi, etc.)

Merci
 

jpb388

XLDnaute Accro
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

re
a la place de .send tu met .save
ouvrir outlock ils seront dans le brouillon sauf le dernier qui sera dans réception

pour le formatage auto il faut qu'il soit toujours pareil et connaitre un peu le vba genre ucase, vbcrlf etc
ou met un exemple formater comme tu le désir et j'essayerai de te le faire
 

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Bonjour jpb388,

J'ai bien remplacé le "send" par "save" et ça marche!
Je vous remercie beaucoup.

Quand au formatage du texte, je vais voir si ça passe!

à la prochaine.

Grand Merci.
 
Dernière édition:

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Bonjour jpb388,
Pour envoyer plus d'une pièce j'ai ajouter un peu de code (par inspiration) le voilà le nouveau code:

Code:
' dans la boite de dialogue références, sélectionnez Microsoft outlook 12.0 (ou autre n°de version)
    ' object library
Sub E_Mail()
Dim cel As Range
For Each cel In Feuil1.Range("a2:a" & Feuil1.Range("a" & Rows.Count).End(xlUp).Row)
    traitement cel
Next
End Sub


Sub traitement(cel As Range)
Dim Mon_Outlook As New Outlook.Application
Dim Mon_Message As Outlook.MailItem
Set Mon_Message = Mon_Outlook.CreateItem(olMailItem)
With Mon_Message
    .Subject = cel.Offset(0, 3) 'le sujet
    .Body = cel.Offset(0, 4) 'le corps du message
    .BodyFormat = olFormatHTML 'format du message
    .Recipients.Add cel.Offset(0, 1) 'ajoute du destinataire en A
    .OriginatorDeliveryReportRequested = True 'accusé de reception
    .ReadReceiptRequested = False 'accusé de lecture
    .Attachments.Add cel.Offset(0, 5).Text 'fichier joint1
    .Attachments.Add cel.Offset(0, 6).Text 'fichier joint2
    .Attachments.Add cel.Offset(0, 7).Text 'fichier joint3
    .CC = cel.Offset(0, 2).Text 'ajoute du destinataire en CC
    .Save
End With
Mon_Outlook.Quit
Set Mon_Message = Nothing
Set Mon_Outlook = Nothing
End Sub

Le problème est que cela ne marche pas s'il y a moins de pièces jointes que prévu.
Aussi, j'aimerai qu'un rapport d'envoi/sauvegarde (brouillon) soit édité sur le même fichier, par exemple devant chaque ligne un état d'envoi/sauvegarde (OK/NO)
car en cas de problème (non remplissage d'une cellule) le programme bloque.

Merci beaucoup.
 

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Re bonjour,

pour la gestion des pièces jointes, ça marche!

Avez vous une idée pour ce besoin:
....Aussi, j'aimerai qu'un rapport d'envoi/sauvegarde (brouillon) soit édité sur le même fichier, par exemple devant chaque ligne un état d'envoi/sauvegarde (OK/NO)

Merci
 

jpb388

XLDnaute Accro
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

re
si tu envoies les messages ils passeront dans éléments envoyés et les non envoyés resterons dans le brouillon
dans le brouillon tu as une case qui sert pour lu et pas lu toi tu peut t'en servir pour envoi pas envoi
tu as le journal(ctrl 8)
mais je ne sais pas a quoi il sert vu que je n'utilise jamais ce logiciel
c'est tout ce que je peux te proposer
 

lostsysmo

XLDnaute Nouveau
Re : envoimultiple de maisl avec outlook avec pièce jointe variable

Bonjour,

Juste une dernière chose: le code pour que les lignes vides ne soient pas pris en considération.
C à d que si le destinataire est vide le code passe au traitement de la ligne suivante jusqu'à la dernière.

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 761
Membres
103 661
dernier inscrit
fcleves