Programmer envoi de mail Outlook depuis Excel

Fermé
Siredgar Messages postés 1 Date d'inscription jeudi 14 décembre 2017 Statut Membre Dernière intervention 14 décembre 2017 - 14 déc. 2017 à 10:38
thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 - 14 déc. 2017 à 19:11
Bonjour,

Premier message sur ce forum. Je suis un peu novice sur VBA mais j'ai une grosse volonté d'apprendre ! Svp mettez toutes les étapes si vous me répondez, cela me permettra de comprendre.

J'envoie des mails assez similaires tous les mois. Aujourd'hui j'ai plusieurs listes d'adresses emails dans excel, je les copie colle dans outlook avec un template de mail pour chacune des listes et j'envoie après avoir ajouté une PJ.

J'aimerais créer une icone a coté de chacune de ces listes d'emails dans excel, qui me permette de directement ouvrir le modèle de mail dans outlook. L'étape suivante serait de pouvoir ajouter la PJ à chaque email mais c'est secondaire

Merci d'avance pour votre aide.

A.

A voir également:

1 réponse

thev Messages postés 1851 Date d'inscription lundi 7 avril 2008 Statut Membre Dernière intervention 15 avril 2024 681
14 déc. 2017 à 19:11
Bonjour,

Vous n'avez pas forcément besoin d'une icône à coté de chacune de ces listes d'emails, vous pouvez utiliser l'événement "SelectionChange" de la feuille où se trouvent vos listes.
Ci-dessous un exemple de code rattaché à votre feuille en supposant que votre liste se trouve en colonne A et que le chemin + nom de vos modèles se trouve en colonne B

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim olk As Object, mail As Object
Dim adresses_mail As Range, destinataire As Range, modèle As Range

'// assignation adresses mail aux cellules remplies de la colonne A
Application.EnableEvents = False
Set adresses_mail = Me.Columns("A").SpecialCells(xlCellTypeConstants)
Application.EnableEvents = True

'// selection unique d'une adresse mail
If Not Intersect(Target, adresses_mail) Is Nothing _
And Target.Count = 1 Then
Set destinataire = Target 'destinataire = adresse mail de la cellule sélectionnée
Set modèle = destinataire.Offset(, 1) 'modèle décalé d'une colonne par rapport au destinataire

Set olk = CreateObject("outlook.application") 'création instance application Outlook
Set mail = olk.CreateItemFromTemplate(modèle) 'création mail à partir du modèle
With mail
.to = destinataire
'.Attachments.Add ("....pdf")
.Display
End With
End If

End Sub
0