XL 2013 Macro excel envoit mail

julien91080

XLDnaute Occasionnel
Bonjour au forum,


J’ai actuellement une macro qui me permet d’envoyer un mail pré rempli par les informations contenus dans des cellules.

Sub envoi_mail()
Dim OutApp As Object
Dim OutMail As Object
Dim strbody As String
Dim olFormatHTML As String
Dim Nom_Fichier As String

If MsgBox("Préparation du MAIL. " & Chr(10) & Chr(10) & "Êtes-vous sur de vouloir envoyer ce mail?", vbYesNo) = vbYes Then


Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
strbody = "Information sur la mise à jour"
On Error Resume Next
With OutMail
.To = Sheets("BaseV2").Range("N85").Value
.BCC = ""
.Subject = "Ouverture de compte"
.BodyFormat = olFormatHTML
.HTMLBody = "Bonjour, <BR><BR>Voici les informations: " & Sheets("BaseV2").Range("b85").Value & " " & Sheets("BaseV2").Range("c85").Value & " " & Sheets("BaseV2").Range("d85").Value & "." & "<BR><BR>Merci par avance." & "<BR><BR>Cordialement,<BR><BR>"
.Display

End With
On Error GoTo 0
Set OutMail = Nothing
Set OutApp = Nothing
End If
End Sub


J’ai actuellement un fichier qui se compose de plusieurs lignes, une ligne par destinataire avec un nom (colonne B), un prénom (colonne C), un code (colonne D) et une colonne adresse mail (colonne N).
J’aimerai la transformer pour que la macro envoi un Email pré rempli par ligne de ce tableau.
Etant nul en boucle, je m’en remets à ce forum.

Merci par avance.

Cordialement,

Julien
 

Lone-wolf

XLDnaute Barbatruc
Bonsoir Julien

pour un code un peu mieux écrit, crée des variables String pour la ligne HTMLBody, par exemple:

With Sheets("BaseV2")
document = .Range("b85").Value
responsable = .Range("c75").Value
lieu = .Range("g45").Value
End with

Ensuite adapte le code à tes besoins. Il faut que les adresses soient en colonnes comme en image.

VB:
Sub Envoi_Mail()
    Dim i, num As Integer, r
    Dim destA, desB
    Dim OutApp As Object
    Dim OutMail As Object
    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)
num = 2
With Sheets("Feuil1")
destA = .Range("a2") & "<" & .Range("b2") & ">;"
For i = 3 To 10 ' Lignes - 1 à modifier selon le nombre de destinataires
num = num + 1
r = r & " " & .Range("a" & num) & "<" & .Range("b" & num) & ">;"
Next
destB = r
End With

With OutMail
        .To = destA
        .CC = Trim(destB)
        .Subject = ""
        .HTMLBody = ""
        .Display '.Send pour envoyer
    End With
    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

adr-mails.gif
 
Dernière édition:

julien91080

XLDnaute Occasionnel
Bonjour Lone-wolf,

Merci pour ce code.
Ce dernier envoi un mail avec X destinataires présent dans la liste.

Mon besoin est de faire un mail pour ttt qui contient l'information en C2, puis un mail à aaa qui contient l'information en C3....

Edit: Ca y est, j'arrive à faire pour un mail, maintenant il faut faire une loop.

Cordialement,

Julien
 
Dernière édition:

Statistiques des forums

Discussions
312 322
Messages
2 087 273
Membres
103 503
dernier inscrit
maison