[VBA] Envoyer pdf par mail

tyranausor Messages postés 3501 Date d'inscription   Statut Membre Dernière intervention   -  
f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   -
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

2 réponses

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    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
  2. tyranausor Messages postés 3501 Date d'inscription   Statut Membre Dernière intervention   2 061
     
    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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Re,

      Je regarde ca demain
      0