XL 2013 creer un PDF et envoyé par mail

pralo

XLDnaute Junior
bonjour a tous
voila mon souci
j'ai trouvé un code pour crée un pdf et envoyer par mail
j'ai réussi miraculeusement a l'adapter un peut
pour le moment la totalité du fichier est envoyé par mail
mais je voudrais uniquement envoyer la ou les pages actives
pour le moment je n'y arrive pas du tout
donc , un petit coup de main!!
merci encore
Code:
Sub mail()
Dim FileExtStr As String
Dim FileFormatNum As Long
Dim Sourcewb As Workbook
Dim destwb As Workbook
Dim TempFilePath As String
Dim TempFileName As String
Dim OutApp As Object
Dim OutMail As Object
Dim S As Shape
Dim sNomFic As String, sRep As String, WshShell As Object


With Application
    .ScreenUpdating = False
    .EnableEvents = False
End With

' Créer une instance Windows Script pour retrouver le chemin du bureau
Set WshShell = CreateObject("WScript.Shell")
sRep = WshShell.SpecialFolders("Desktop")
Set WshShell = Nothing
' Définit le nom du fichier à enregistrer
sNomFic = ThisWorkbook.Name & ".pdf"         '''''''nom du fichier'''''''
' Enregistrer la feuille en PDF
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=False

Set OutApp = CreateObject("outlook.application")
Set OutMail = OutApp.CreateItem(0)
    With OutMail
        .to = "wa@europe.com"
        .Attachments.Add (sRep & "\" & sNomFic)
        .Subject = "Rapport" & " " & ThisWorkbook.Name & ".pdf" 'Rapport + le nom du fichier '
        .Display
    End With
   
With Application
    .ScreenUpdating = True
    .EnableEvents = True
End With
Kill (sRep & "\" & sNomFic)
End Sub
 

pralo

XLDnaute Junior
salut kiki29
merci pour ta réponse rapide
mais dur dur pour moi tout est en anglais
et apparemment le fichier doit déjà être créer
a chaque fois je doit ouvrir un fichier qui est déjà en pdf
moi, mon code fonctionne bien a partir d'un fichier Excel mais il sélectionne tout
pas seulement la feuille actif
si ta une idée
merci encore
 

Roland_M

XLDnaute Barbatruc
Bonsoir tout le monde !

' ICI remplacer ActiveWorkbook. par Sheets("LeNomDeTaFeuil").
' Enregistrer la feuille en PDF
Sheets("LeNomDeTaFeuil").ExportAsFixedFormat Type:=xlTypePDF, Filename:=sRep & "\" & sNomFic, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

'et ICI modif pour supprimer l'extension
'Définit le nom du fichier à enregistrer
sNomFic = ThisWorkbook.Name '''''''nom du fichier'''''''
sNomFic = Left(sNomFic, InStrRev(sNomFic, ".")) & "pdf"
 
Dernière édition:

pralo

XLDnaute Junior
bonsoir Roland
merci pour ton aide
désolé pour mes explications un peut flou
en fait dans le temps, j'ajoute des feuilles que je doit envoyer en PDF par email
donc je ne peut pas a chaque fois modifier le nom de la feuille dans le code
ou alors peut-être mettre le nom dans une cellule et la récupérer pour mettre dans le code
possible ou pas ??
 

Roland_M

XLDnaute Barbatruc
Bonsoir,

évidemment, ici c'est un exemple, mais en réalité on travail avec des paramètres modifiables !
exemple, on se réserve une feuille appelée "data" dans laquelle on nomme des cellules pour extraire
depuis le code ces paramètres !

EDIT: ici à la place de Sheets("LeNomDeTaFeuil")

on peut nommer une cellule dans une feuille nommée data:
exemple: cellule A1 nommée "NomDeLaFeuil" dans laquelle on met le nom de la feuille à envoyer
et dans le code:
Feuil$=Sheets("Data").Range("NomDeLaFeuil")
et ici à la place de Sheets("LeNomDeTaFeuil")
Sheets(Feuil$)
 
Dernière édition:

pralo

XLDnaute Junior
bonsoir Roland
merci pour votre aide
et désolé pour mes mauvaises explications
en fait, dans le temps j'ajoute des feuilles et je doit les envoyer en PDF par mail
donc difficile a chaque fois de mettre le nom de la feuille dans le code
merci encore pour ton aide
j'ai regarder aussi les liens , j'ai bien peur de ne pas avoir les compétence pour comprendre toutes ces explication sur les macro
merci encore
 

pralo

XLDnaute Junior
bonne nouvelle
avec vos conseille, maintenant ca marche
en fait c'est comme vous avez dit, j'ai remplacer
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF
par
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF
et maintenant j'ai bien uniquement la feuille sélectionner dans mon mail
encore merci
 

Statistiques des forums

Discussions
312 799
Messages
2 092 241
Membres
105 305
dernier inscrit
Momone59