Modifier un code pièce jointe PDF au format Excel VBA
P
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 SubInvité
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 SubA+
P
Merci de ta réactivité BrunoM45 je regarde ça dès demain et je te tiens au courant !