XL 2013 creer un PDF et envoyé par mail

  • Initiateur de la discussion Initiateur de la discussion pralo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
 
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
 
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:
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 ??
 
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:
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
 
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
235
  • Question Question
Microsoft 365 Code VBA
Réponses
7
Affichages
817
Réponses
4
Affichages
177
Retour