[VBA] Envoyer pdf par mail

Fermé
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 - 12 juin 2015 à 13:45
f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 - 12 juin 2015 à 19:23
Bonjour,

la question d'envoi d'un pdf par mail a du être plusieurs fois posée, mais là c'est différent.

Je m'explique, j'ai imprimé une feuille de mon classeur en pdf mais avec des cellules en moins, un titre centré. Enfin, totalement différent de la feuille originale.

J'ai rédigé le code qui génère ce pdf =>

Dim S1, S4 As Byte

d = Range("A65000").End(xlUp) 'd est la variable de la dernière cellule de la colonne A
Sheets("Archives").Select
S1 = Range("A6").Value 'S1 est le la valeur de la cellule en A6
S4 = d
Columns("D:J").Hidden = True
Rows("1:3").Hidden = True

Sheets("Archives").PageSetup.CenterHorizontally = True
Sheets("Archives").PageSetup.CenterVertically = True

With ActiveSheet.PageSetup
.CenterHeader = "Heures des salariés pour les semaines " & S1 & " à " & S4 'Titre centrée de la feuille
End With

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"Heures des salariés.pdf", Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
From:=1, To:=1, OpenAfterPublish:=True


et, à l'aide de l'enregistreur j'ai pu avoir
Sub Envoi_mail_pj()
'
' Envoi_mail_pj Macro
'

'
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Etienne\AppData\Local\Temp\Copie de Version finale application de paie (avec userform).pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=False, _
IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.Dialogs(xlDialogSendMail).Show
End Sub
qui m'envoie le classeur par mail.

Je cherche donc à lier les deux codes pour qu'Excel m'envoie le pdf généré par mail. J'ai cherché mais sans succès.

Si quelqu'un peut m'aider, je suis débutant en vba
A voir également:

2 réponses

f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 1 713
Modifié par f894009 le 12/06/2015 à 15:37
Bonjour,
Bonjour,

Application.Dialogs(xlDialogSendMail).Show

pas possible de parametrer piece-jointe

'outils: references cocher microsoft outlook x.x object library de votre office
Sub test()
    Dim S1, S4 As Byte

    d = Range("A65000").End(xlUp) 'd est la variable de la dernière cellule de la colonne A
    Sheets("Archives").Select
    S1 = Range("A6").Value 'S1 est le la valeur de la cellule en A6
    S4 = d
    Columns("D:J").Hidden = True
    Rows("1:3").Hidden = True

    Sheets("Archives").PageSetup.CenterHorizontally = True
    Sheets("Archives").PageSetup.CenterVertically = True

    With ActiveSheet.PageSetup
        .CenterHeader = "Heures des salariés pour les semaines " & S1 & " à " & S4 'Titre centrée de la feuille
    End With
    'chemin = "C:\Users\Etienne\AppData\Local\Temp\Copie de Version finale application de paie (avec userform).pdf"
    chemin = "d:\_txt\azerty.pdf"
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin _
        , Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
        
    'x = Application.Dialogs(xlDialogSendMail).Show("azerty", "qazerty")
    Set olApp = CreateObject("Outlook.application")
    Set m = olApp.CreateItem(olMailItem)
    With m
        .To = "adresse destinataire(s)"       'separateur: vigule
        .CC = ""                                                   'separateur: vigule
        .Subject = "Sujet"
        .Body = "Corps du message"      'texte
        .attachments.Add chemin
        '.display True   'ouverture de outlook pour complement(s) d'info
        .Send      'envoi direct
    End With
    Set olApp = Nothing
    Set m =Nothing
End Sub
0
tyranausor Messages postés 3545 Date d'inscription jeudi 6 août 2009 Statut Membre Dernière intervention 1 avril 2022 2 037
Modifié par tyranausor le 12/06/2015 à 18:38
Bonjour, je vous remercie pour le code mais j'ai Thunderbird comme logiciel de messagerie, pas Outlook et donc, je n'ai pas cette librairie.

J'aurais du le préciser, dsl!
0
f894009 Messages postés 17268 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 29 mars 2025 1 713
12 juin 2015 à 19:23
Re,

Je regarde ca demain
0