MACRO EXCEL - OUTLOOK ENVOI PDF

jeremy6812

XLDnaute Nouveau
Bonjour à tous

Je recherche une création de macro qui aurais les fonctions suivantes :


Dans fichier Excel

COLONE A : ADRESSE EMAIL DESTINATAIRE

COLONNE B : OBJET DU MAIL

COLONNE C à L : TEXTE LIBRE

COLONNE M : Image de signature

COLONNE N : numéro de la pièce jointe


Je souhaiterais que la macro envoie un email au destinataire « A « , en objet « B » , texte de l’email colonne de C a L

Signature de l’email : image en colonne M

Et en pièce jointe un PDF du numéro de la colonne N qui ce trouverais dans un dossier de mon ordinateur.



Je suis arriver a créé mes requête de la colonne A à L mais je ne sais pas comment faire la suite , je n'arrive qu'a insérer une signature écrite en COLONNE M alors que je souhaiterais une image et surtout, et je n arrive absolument pas a faire rechercher la piece jointe...

Si quelqu'un peux m'aider , merciiiii
 

Pièces jointes

  • EMAIL.xlsm
    16.1 KB · Affichages: 31

kingfadhel

XLDnaute Impliqué
Re,

Voila le code testé, reste que la signature, je vais voir encore.

VB:
Public Sub Envoi_mail()
'---Envoyer_Mail_Outlook---
Dim ObjOutlook As Object
Dim oBjMail As Object
Dim Nom_Fichier, Nom_Fichier2 As String
Dim destinataires As String
Set ObjOutlook = CreateObject("Outlook.Application")
For i = 5 To [A65536].End(xlUp).Row
    Contenu = Range("D" & i) & Chr(10) & Chr(13)
    Contenu = Contenu & " " & Range("E" & i)
    Contenu = Contenu & " " & Range("F" & i) & Chr(10) & Chr(13)
    Contenu = Contenu & " " & Range("G" & i)
    Contenu = Contenu & " " & Range("H" & i)
    Contenu = Contenu & " " & Range("I" & i)
    Contenu = Contenu & " " & Range("J" & i)
    Contenu = Contenu & " " & Range("K" & i)
    Contenu = Contenu & " " & Range("L" & i)
    Contenu = Contenu & "Ta fonction (Chef de fil)" & Chr(10) & Chr(13)
    Contenu = Contenu & "GSM: 0011554422" & Chr(10) & Chr(13)

    Set ObjOutlook = CreateObject("Outlook.Application") 'New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
'---Destinataires---
destinataires = Range("A" & i)
'---------------------------------------------------------
    Nom_Fichier = ThisWorkbook.Path & "\" & Range("N" & i) & ".pdf"
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
     With oBjMail
        .To = destinataires
        .Subject = Range("C" & i) ' l'objet du mail
        .Body = Contenu 'le corps du mail ..son contenu
        .Attachments.Add Nom_Fichier
        .Send

    End With
    ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
    Next
End Sub
 

jeremy6812

XLDnaute Nouveau
Bonjour et merci de ton aide :)

Pour répondre a ta question:

J Ai fait une macro dans mon fichier pour l'envoie des email çà c'est OK , mais je n arrive pas pour la pièce jointe ni la signature:

Oui il peux y avoir plusieurs destinataire , chacun a une pièce jointe différente
il peut y avoir de 1 à 200 destinataires ( EMAIL DE A7 A A207 )

l 'image de signature est un jpeg sur un dossier du lecteur C
Idem les pièces jointe sont différent pour chaque destinataire et ce trouve également dans un dossier du lecteur C
 

Pièces jointes

  • EMAIL.xlsm
    18.1 KB · Affichages: 30

kingfadhel

XLDnaute Impliqué
Re,
VB:
Public Sub Envoi_mail()
'---Envoyer_Mail_Outlook---
Dim oAttach As Object, ColAttach As Object
Dim ObjOutlook As Object
Dim oBjMail As Object
Dim Nom_Fichier, Nom_Fichier2 As String
Dim destinataires As String
Set ObjOutlook = CreateObject("Outlook.Application")
For i = 5 To [A65536].End(xlUp).Row
    chemin = ThisWorkbook.Path & "\" & Range("B" & i) & ".png"
    Contenu = Range("D" & i) & Chr(10) & Chr(13)
    Contenu = Contenu & " " & Range("E" & i)
    Contenu = Contenu & " " & Range("F" & i) & Chr(10) & Chr(13)
    Contenu = Contenu & " " & Range("G" & i)
    Contenu = Contenu & " " & Range("H" & i)
    Contenu = Contenu & " " & Range("I" & i)
    Contenu = Contenu & " " & Range("J" & i)
    Contenu = Contenu & " " & Range("K" & i)
    Contenu = Contenu & " " & Range("L" & i)
    Contenu = Contenu & "Ta fonction (Chef de fil)" & Chr(10) & Chr(13)
    Contenu = Contenu & "GSM: 0011554422" & Chr(10) & Chr(13)

    Set ObjOutlook = CreateObject("Outlook.Application") 'New Outlook.Application
    Set oBjMail = ObjOutlook.CreateItem(olMailItem)
    Set ColAttach = oBjMail.attachments
    Set oAttach = ColAttach.Add(chemin)
'---Destinataires---
destinataires = Range("A" & i)
'---------------------------------------------------------
    Nom_Fichier = ThisWorkbook.Path & "\" & Range("N" & i) & ".pdf"
    If Nom_Fichier = "" Then Exit Sub
'---------------------------------------------------------
'MsgBox Nom_Fichier & ";" & Chr(10) & Chr(13) & Chemin
     With oBjMail
        .To = destinataires
        .Subject = Range("C" & i) ' l'objet du mail
        .Body = Contenu 'le corps du mail ..son contenu
        .HTMLBody = "<IMG src=cid:" & Range("B" & i) & ".png" & "></BODY>"
        .attachments.Add Nom_Fichier
        .Send
    End With
    ObjOutlook.Quit
    Set oBjMail = Nothing
    Set ObjOutlook = Nothing
    Next
End Sub

Jeremy6812.PNG
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
217

Statistiques des forums

Discussions
314 653
Messages
2 111 589
Membres
111 208
dernier inscrit
estalavista