Envoi de deux feuilles en PDF par courriel

Bonjour,

Tout d'abord, merci pour ce merveilleux site. Je viens de créer plusieurs formulaires qui s'auto-remplissent avec le premier et j'essaie d'utiliser la macro VBA xSheet_To1PDF_ToMail() donnée en modèle dans le but d'envoyer deux de ces formulaires en PDF à un destinataire précis par courriel. Voici le modèle :

Sub xSheet_To1PDF_ToMail()
Dim sPath As String, sFileName As String
Dim ShtArray() As String, CountArr As Integer
Dim Sht As Worksheet
Dim OutApp As Object, OutMail As Object
sPath = Environ("TEMP") & "\"
sFileName = "NomDuFichier.pdf"
If Right(sFileName, 4) <> ".pdf" Then sFileName = sFileName & ".pdf"
CountArr = 0
For Each Sht In ThisWorkbook.Sheets
If InStr(1, ListNoPrint, Sht.Name) = 0 And Sht.Visible = xlSheetVisible Then
ReDim Preserve ShtArray(CountArr)
ShtArray(CountArr) = Sht.Name
CountArr = CountArr + 1
End If
Next Sht
Sheets(ShtArray).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Sheets("Menu").Select
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(olMailItem)
With OutMail
.Display ' Afficher le mail pour afficher la signature
.To = "OutMaildestinataire@fai.fr"
.Subject = "Ceci est le sujet de mon mail"
.HTMLBody = "Bonjour," & "<BR><BR>" _
& "Vous trouverez ci-joint le fichier " & sFileName & "<BR><BR>" & .HTMLBody
' Joindre le fichier précédemment créé
.Attachments.Add sPath & sFileName
'.Send
End With
Set OutMail = Nothing: Set OutApp = Nothing
Kill sPath & sFileName
End Sub

Edit modo : merci de mettre le code entre balises SVP avec le bouton </>

Mon problème est que lorsque je tente de mettre mes deux feuilles (ex: feuil2 et feuil3) à envoyer dans l'array, ça bogue à tout coup. Quelqu'un peut m'aider?

PS : Je n'ai pas entré les informations dans les codes, car il s'agit d'un dossier confidentiel.

Bonjour majpoulin et

Une petite présentation ICI serait la bienvenue

Si vous ne l'avez pas encore fait, je vous invite à lire :
- La charte du forum
- Quelques fonctionnalités du forum à connaître
qui vous aideront dans vos demandes et réponses sur ce forum.

Regardez aussi les petites icônes mises à votre disposition dans la barre de menu qui :
- vous permettent de poster un code (</>)
- ou de clôturer un fil lorsque vous avez terminé (V)

Merci pour votre participation

Concernant votre demande,
en plus d'être agréable pour le contributeur (moi) il serait bien de préciser ou vous avez trouvé ce code

En effet la personne qui chercherait quelque chose de similaire pourrait avoir envie d'en savoir plus
https://www.excel-pratique.com/fr/telechargements/utilitaires/pdf-email-vba-excel-no508

Merci beaucoup Bruno M45. Effectivement, j'ai pris les codes ici-même. Tout fonctionne jusqu'à ce que je mette les informations relatives au nom du fichier. Un bogue se présente au code

CountArr = 0

De plus, comme je le mentionnais, je n'arrive pas à figurer quelles informations entrer pour que seulement deux feuilles de mon classeur soient exportées en PDF pour l'envoi par courriel.

Je vous suis déjà reconnaissante de l'aide que vous m'apporterez.

Bonjour,

Vu que vous n'avez que 2 feuilles, vous pouvez remplacer le code précédent, par celui-ci

Sub ExportPDF_EnvoiMail()
  Dim sPath As String, sFileName As String
  Dim OutApp As Object, OutMail As Object
  sPath = Environ("TEMP") & "\"
  sFileName = "NomDuFichier.pdf"
  If Right(sFileName, 4) <> ".pdf" Then sFileName = sFileName & ".pdf"
  ' Sélectionner les 2 feuilles à imprimer
  Sheets(Array("Feuil2", "Feuil3")).Select
  ' Exporter les 2 feuilles en PDF
  ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sPath & sFileName, _
  Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  ' Créer une instance Outlook
  Set OutApp = CreateObject("Outlook.Application")
  Set OutMail = OutApp.CreateItem(0)
  With OutMail
    .Display ' Afficher le mail pour afficher la signature
    .To = "OutMaildestinataire@fai.fr"
    .Subject = "Ceci est le sujet de mon mail"
    .HTMLBody = "Bonjour," & "<BR><BR>" _
    & "Vous trouverez ci-joint le fichier " & sFileName & "<BR><BR>" & .HTMLBody
    ' Joindre le fichier précédemment créé
    .Attachments.Add sPath & sFileName
    '.Send
  End With
  Set OutMail = Nothing: Set OutApp = Nothing
  Kill sPath & sFileName
End Sub

A+

Bonjour BrunoM45,

Tout d'abord désolée du délai de réponse et merci pour les codes. Je vais tester le tout cet après-midi.

Rechercher des sujets similaires à "envoi deux feuilles pdf courriel"