Fichier joint à mail automatique

Salut à tous,

Alors voilà, j'ai une macro (ci-dessous) que j'utilise régulièrement.

Celle-ci permets d'envoyer un mail automatiquement à une liste de destinataires en reprenant des informations de mon classeur Excel.

Mais je souhaite aller plus loin cette fois en incluant directement un fichier PDF de mon tableau en pièce jointe du mail.

Comment faire cela ?

Merci d'avance !

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
' envoi un mail automatique avec le contenu de l'anomalie
' Consignes de migration: rajouter un statut "Non diffusée" dans la dernière colonne du tableau
' Donner accès à Excel 2010
' Intégrer la liste de diffusion des acheteurs
' Contrôle de statut " Non diffusée

Dim ol As Object, monItem As Object
    Dim i
Dim j
Dim k
Dim cont
Dim fournisseur
Dim SKU
Dim Référence
Dim commentaire
Dim da
Dim Coloris
Dim Dimensions

i = 2
j = 2
te = 0
k = 2

' On récupère la ou les lignes concernées par un éventuel envoi
For i = 2 To 2000

    If Worksheets("exemple _exemple").Range("I" & i).Value = "Non diffusée" Then
    Worksheets("exemple _exemple").Range("R" & j).Value = i
    j = j + 1
    End If

Next i

' On envoie les mails concernés

While Worksheets("exemple _exemple").Range("R" & k).Value <> ""
    cont = CInt(Worksheets("exemple _exemple").Range("R" & k).Value)
    'On récupère les données
    fournisseur = Worksheets("exemple _exemple").Range("C" & cont).Value
    Référence = Worksheets("exemple _exemple").Range("D" & cont).Value
    SKU = Worksheets("exemple _exemple").Range("F" & cont).Value
    commentaire = Worksheets("exemple _exemple").Range("H" & cont).Value
    da = Worksheets("exemple _exemple").Range("B" & cont).Value
    Coloris = Worksheets("exemple _exemple").Range("E" & cont).Value
    Dimensions = Worksheets("exemple _exemple").Range("G" & cont).Value

    'On envoit le mail en question
    Set ol = CreateObject("outlook.application")
    Set monItem = ol.CreateItem(olMailItem)
    'monItem.To = " SOCRACK@BLABLA.FR "
    monItem.To = " socrack@blabla.fr "
    monItem.Cc = ""
    monItem.Subject = "BLABLA " & Référence & " en " & Coloris
    monItem.Body = "Bonjour" & commentaire & "Au revoir"
    monItem.Send
    Set ol = Nothing
    k = k + 1

    'On change le statut de l'anomalie
    Worksheets("exemple _exemple").Range("I" & cont).Value = "VOILI VOILOU"
Wend

Worksheets("exemple _exemple").Range("R2:R40").ClearContents

End Sub

Bonjour,

avant monItem.send, ajoute

monItem.Attachments.Add nompdf & ".pdf"

Hello, merci pour ton aide.

J'ai mis cette ligne tel qu'elle est dans ton message. Cela me renvoie vers le déboggeur lorsque je lance la macro :/

Et je précise si ce n'est pas clair dans mon message : l'idée est que le fichier PDF du tableau se génère dans la macro, ce n'est pas un fichier créé préalablement.

c'est bien cela le problème

je suppose que le fichier pdf est créé à partir de l'onglet existant ... dans ce cas

en début de macro

    nompdf = Environ("Temp") & "\" & "pj"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

en fin de macro

    Kill Environ("Temp") & "\" & "pj" & ".pdf"

remplace le nom pj par ce que tu souhaites si nécessaire

Roh super ça fonctionne au poil, merci beaucoup

Rechercher des sujets similaires à "fichier joint mail automatique"