XL 2016 Code VBA pour envoi de mail avec pdf en piece jointe

  • Initiateur de la discussion Initiateur de la discussion Nosma
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Nosma

XLDnaute Nouveau
Bonjour à tous,
comment vous allez?
je suis en train de finaliser un fichier, je suis vraiment de mon petit projet. c'est fichier pour un service comptable avec plusieurs décompte sur plusieurs feuille.
je veux creer une macro, grace un click ou un bouton met la feuille en pdf et ensuite l'insert en pièce jointe sur outlook.
j'ai tourner ma macro dans tous les sens, elle bloque toujours au meme point. (en rouge)
quelqu'un aurai une solution? please.


Dim repertoire, fichier As String
Dim OutApp As Object
Dim OutMail As Object

Sheets("Decompte Acquéreur").Select
Range("B1: E60").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\manos\Desktop\DECOMPTE ACQUEREUR_" & Format(Now(), "dd.mm.yyyy"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.Cc = ""
.Attachments.Add (repertoire & "\" & fichier)
.Subject = "DECOMPTE ACQUEREUR"
.Body = "Bonjour, Veuillez trouver en pièce jointe le fichier PDF du décompte acquéreur."
.Display
End With
 
Bonjour à tous,
comment vous allez?
je suis en train de finaliser un fichier, je suis vraiment de mon petit projet. c'est fichier pour un service comptable avec plusieurs décompte sur plusieurs feuille.
je veux creer une macro, grace un click ou un bouton met la feuille en pdf et ensuite l'insert en pièce jointe sur outlook.
j'ai tourner ma macro dans tous les sens, elle bloque toujours au meme point. (en rouge)
quelqu'un aurai une solution? please.


Dim repertoire, fichier As String
Dim OutApp As Object
Dim OutMail As Object

Sheets("Decompte Acquéreur").Select
Range("B1: E60").Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\manos\Desktop\DECOMPTE ACQUEREUR_" & Format(Now(), "dd.mm.yyyy"), Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False

Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = ""
.Cc = ""
.Attachments.Add (repertoire & "\" & fichier)
.Subject = "DECOMPTE ACQUEREUR"
.Body = "Bonjour, Veuillez trouver en pièce jointe le fichier PDF du décompte acquéreur."
.Display
End With

Bonjour, une idée qui fonctionne pour moi, à adapter

VB:
    fichier = "E:\Comptabilite\Data\Facture Acompte\" & ListBox3.Value & ""
    With oBjMail
        .Display
        .To = mail_t ' le destinataire
        '.CC = ""
        '.BCC = ""
        .Subject = "Facture d'acompte"
        .HTMLBody = strbody & " " & .HTMLBody
        .Attachments.Add fichier
        .Display
        '.Send
    End With

Bonne soirée
 
Bonjour,

j'ai tourner ma macro dans tous les sens, elle bloque toujours au meme point. (en rouge)
quelqu'un aurai une solution? please.
1- Tu as oublié d'affecter une valeur à repertoire et aussi à fichier.
2- Tu as oublié d'ajouter ".pdf" au nom du fichier à attacher au mail.

Une proposition
VB:
Sub EnvoiMail()
'
Dim repertoire, fichier As String
Dim OutApp As Object, OutMail As Object

    repertoire = "C:\Users\manos\Desktop"
    fichier = "DECOMPTE ACQUEREUR_" & Format(Now(), "dd.mm.yyyy")

    Sheets("Decompte Acquéreur").Range("B1: E60"). _
            ExportAsFixedFormat Type:=xlTypePDF, _
                                Filename:=repertoire & "\" & fichier, _
                                Quality:=xlQualityStandard, _
                                IncludeDocProperties:=True, _
                                IgnorePrintAreas:=False, _
                                OpenAfterPublish:=False

    Set OutApp = CreateObject("outlook.application")
    Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .To = ""
        .Cc = ""
        .Attachments.Add (repertoire & "\" & fichier & ".pdf")
        .Subject = "DECOMPTE ACQUEREUR"
        .Body = "Bonjour, Veuillez trouver en pièce jointe le fichier PDF du décompte acquéreur."
        .Display
    End With

End Sub
 
Bonjour à tous

@Nosma :

Je te propose ce code :

VB:
Option Explicit

Sub PDF_Mail()

Dim Ws As Worksheet, Chemin$, NFichier$
Dim OutApp As Object, OutMail As Object

Set Ws = Worksheets("Decompte Acquéreur")

Chemin = CreateObject("WScript.Shell").specialFolders("Desktop") & "\"
NFichier = "DECOMPTE ACQUEREUR_" & Format(Date, "dd.mm.yyyy")

'*********** PDF
Ws.PageSetup.PrintArea = ("$B$1: $E$60")
Ws.ExportAsFixedFormat xlTypePDF, Chemin & NFichier, Quality:=xlQualityStandard, IncludeDocProperties:=True
NFichier = Chemin & NFichier & ".PDF"
'***********

'*********** Envoie le Mail
'On Error Resume Next ' Si pb
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

With OutMail
    .To = ""  ' A remplir !!!
    .CC = ""  ' A remplir !!!
    .Subject = "DECOMPTE ACQUEREUR"
    .Body = "Bonjour, Veuillez trouver en pièce jointe le fichier PDF du décompte acquéreur."
    .Attachments.Add NFichier
    .Display    ' Visualisation fichier
'    '.Send      ' Envoi fichier à activer pour l'envoi
End With
'***********
Set Ws = Nothing: Set OutApp = Nothing: Set OutMail = Nothing
End Sub

Merci de ton retour
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Question code VBA
Réponses
2
Affichages
365
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
622
Réponses
2
Affichages
374
Réponses
6
Affichages
651
Réponses
3
Affichages
521
Réponses
2
Affichages
908
Réponses
17
Affichages
2 K
Réponses
3
Affichages
632
Retour