Autres envoi fichier en pièce jointe par mail

steph-91260

XLDnaute Nouveau
Bonjour,
je viens vers vous pour solliciter votre aide.
J'ai créer dans mon fichier un bouton pour enregistrement au format pdf avec nom de fichier selon cellule L2 ce qui fonctionne parfaitement mais je souhaiterais qu'en plus ce fameux fichier créer soit envoyer par mail en pièce jointe.
pouvez-vous m'aider.
Merci
ci-dessous le code actuel

Sub EnrPDF()
'
' EnrPDF Macro
' Sauvegarder la feuille en PDF

Dim a$
'a$ = ActiveSheet.Name
a = Range("L2").Value
ActiveSheet.Select

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
ThisWorkbook.Path & "\Feuille heures semaine N°_" & a & "_" & Format(Date, "dd-mm-yyyy") & ".pdf", Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
 

Pièces jointes

  • Matrice relevé d'heure final test.xlsm
    57.4 KB · Affichages: 7

BrunoM45

XLDnaute Barbatruc
Bonjour Steph-91260

Voici une possibilité de code à utiliser, ainsi que le fichier modifié ;)
VB:
Option Explicit ' Rendre obligatoire la définition des variables
' cela évite les erreur de noms et permet un débogage plus facile

Const olMailItem As Integer = 0

Sub EnrEtEnvoiPDF()
  Dim OutApp As Object 'Déclaration de l'objet Outlook
  Dim OutMail As Object 'Déclaration de l'objet mail
  Dim Sht As Object ' Déclaration de l'objet feuille
  Dim dLig As Long, Lig As Long
  Dim sPath As String, sNomFic As String
  Dim NumSem As Integer
  ' Définir la feuille à traiter
  Set Sht = ThisWorkbook.Sheets("MATRICE")
  ' Définir le chemin des PDF
  sPath = ThisWorkbook.Path & "\"
  ' Numéro de semaine
  NumSem = Sht.Range("L2").Value
  ' Nom du fichier
  sNomFic = "Feuille heures semaine N°_" & NumSem & "_" & Format(Date, "dd-mm-yyyy") & ".pdf"
  '
  ' Exporter la feuille en PDF
  Sht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sNomFic, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  '
  ' Créer unes instance outlook
  Set OutApp = CreateObject("Outlook.Application")
  With OutApp.Createitem(olMailItem)
    .Display  ' Pour afficher la signature si existante
    .SentOnBehalfOfName = "sssss.ssssss@gmail.com" ' Adresse de l'émetteur (pas obligatoire)
    .To = "AdresseMailduDestiantaire"
    .CC = "AdresseMailEnCopie"
    .BCC = "AdresseMailCopieCachée"
    .Subject = "Mon sujet"
    .HTMLBody = "Bonjour,<br>" _
      & "Vous trouverez ci-joint... blabla" & "<br>" & .HTMLBody
    ' Joinde le PDF
    .Attachments.Add sPath & sNomFic
    '.Send  ' Envoyer le mail
  End With
  ' Libérer la mémoire
  Set OutMail = Nothing: Set OutApp = Nothing: Set Sht = Nothing
End Sub

A+
 

Pièces jointes

  • Steph_Matrice relevé d'heure final test.xlsm
    59.4 KB · Affichages: 9

Discussions similaires