Modifier un code pièce jointe PDF au format Excel VBA

Bonjour à tous,

j'ai un code qui fonctionne très pour envoyer un mail avec Outlook + en pièce jointe un feuille de mon classeur en PDF. Cependant je souhaiterais pouvoir envoyer un autre mail cette fois si au format Excel. Puis-je utiliser mon code en le modifiant si oui que dois-je modifier, ou dois--je en utiliser un nouveau ? je joins le code vba que j'utilise pour la création du fichier PDF

Merci

Option Explicit

Public Const ListNoPrint As String = "Accueil"

Sub Sheet_ToPDF_ToMail()

  Dim sPath As String, sFileName As String, ShtName As String
  Dim OutObj As Object, Email As Object

  sPath = Environ("TEMP") & "\"

  sFileName = "FORMULAIRE.pdf"

  If Right(sFileName, 4) <> ".pdf" Then sFileName = sFileName & ".pdf"

  ShtName = "Formulaire"

  Sheets(ShtName).ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFileName, _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

  Set OutObj = CreateObject("Outlook.Application")
  Set Email = OutObj.CreateItem(0)

  With Email
    .Display  
    .To = Range("a5")
    .Subject = Range("B8")
    .Body = Range("b10"
    .Attachments.Add sPath & sFileN
    '.Send
  End With

  Set Email = Nothing: Set OutObj = Nothing

  Kill sPath & sFileName
End Sub

Bonjour Papitho,

Voici le code adapté à ta demande

Sub Sheet_ToMail()
  Dim sPath As String, sFileName As String, ShtName As String
  Dim OutObj As Object, Email As Object

  sPath = Environ("TEMP") & "\"
  sFileName = "MonNom.xlsx"
  ' Copier la feuille dans un nouveau classeur
  Sheets(1).Copy
  ' Avec le classeur actif
  With ActiveWorkbook
    ' Copier/coller les valeurs de la feuille pour éviter les liaisons
    With .Sheets(1).Cells
      .Copy
      .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With
    ' Sauvegarder le classeur actif
    .SaveAs sPath & sFileName
    ' Le fermer
    .Close
  End With
  ' Créer le mail
  Set OutObj = CreateObject("Outlook.Application")
  Set Email = OutObj.CreateItem(0)
  With Email
    .Display
    .To = Range("a5")
    .Subject = Range("B8")
    .Body = Range("b10")
    .Attachments.Add sPath & sFileName
    '.Send
  End With
  ' On efface les variables objet
  Set Email = Nothing: Set OutObj = Nothing
  ' On supprime ou non le fichier Excel
  Kill sPath & sFileName
End Sub

A+

Merci de ta réactivité BrunoM45 je regarde ça dès demain et je te tiens au courant !

Rechercher des sujets similaires à "modifier code piece jointe pdf format vba"