XL 2016 Sélection onglet Excel envoi par mail en PDF

LuanaDDC

XLDnaute Junior
Bonjour !

J'espère que vous allez bien et je suis désolée de vous importuner.


J'ai besoin de vos conseils, aides, talents, etc pour m'aider, s'il vous plait.

Voici a problématique. Je rappelle que je ne suis pas vraiment à l'aise avec les macros mais j'ai quand même essayer et je vous avoue que je suis plutôt fière ^^'

J'ai un fichier Excel et je souhaite envoyer par mail et de façon semi-automatique, 2 feuilles Excel donc pas tout le fichier. Ces deux feuilles en formats PDF.

J'ai un onglet "Envoi Mail" avec une base de donnée mail et un bouton "ENVOYER MAIL". J'y est affecté une macro qui est dans le module 1. Cette dernière marche parfaitement : Une fenêtre s'ouvre, je sélectionne les adresses mails souhaités (c'est fait exprès car ça m'évite de devoir rentrer dans la macro si changement) et mon Outlook s'ouvre avec mes destinataires, mon objets qui reprends le N° de la semaine et mon body. De plus j'ai bien ma pièce joint. Sauf que la pièce joint est en .xls et reprends donc tous les onglets.

Dans mon module 2, j'ai essayé de "bidouiller" un peu et ça marche sans marcher. Il créer une nouvelle feuille...

--> En effet dans mon module Main, à chaque fois que clique sur le bouton "Exécution", une nouvelle feuille se crée avec le nom de la semaine : S36 (par exemple). Je souhaite donc pouvoir sélectionner automatiquement la feuille "S" qui va se créer.

Mon but finale c'est de pouvoir cliquer sur mon bouton "ENVOYER MAIL", sélectionner mes adresses mails et envoyer par mail et en PJ mon onglet "Graphique" et la feuille "S" qui aura été crée..

Je sais qu'il y a déjà des sujets sur ça et je me suis justement servie de tout ça mais je bloque...

J'espère que vous allez pouvoir m'aider.. en tout cas je vous remercie par avance !
 

Pièces jointes

  • Rapport_Hebdo_2022.xlsm
    79.8 KB · Affichages: 4

Hasco

XLDnaute Barbatruc
Bonjour,

Voici dans le fichier joint une macro qui le fera. Il est important de définir vos propriété d'impression des feuilles idoines avant de les exporter en pdf pour plus de lisibilité.
Le fichier résultant est nommé 'attachment.pdf' dans le dossier du classeur qui contient la macro.

La macro d'envois de mail n'a pas été testée. Seule la création du fichier pdf.

Sub SaveSheetsToPdf()
Dim File As String, AcSheetName As String ' Nom de fichier et nom de la feuille active
Dim SVisible As XlSheetVisibility ' Visibilité de la feuille S au lancement de la macro

Application.ScreenUpdating = False

With ThisWorkbook

'
' retenir le nom de la feuille active et la visibilité de la feuille S
AcSheetName = ActiveSheet.Name
SVisible = Sheets("S").Visible
'
' Définir le nom du fichier pdf et si le fichier est trouvé sur le disque, le supprimer
File = .Path & "\attachment.pdf"
If Dir(File) <> "" Then Kill File
'
' Définir les plage d'impression pour les deux feuilles
Sheets("S").PageSetup.PrintArea = Sheets("S").UsedRange.Address
Sheets("Graphique").PageSetup.PrintArea = "B2:F43"
'
' Rendre la feuille S visible pour pouvoir l'inclure dans la sélection
Sheets("S").Visible = xlSheetVisible
'
' Sélection des feuilles à exporter en pdf et exportation
.Sheets(Array("Graphique", "S")).Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
File, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True
'
' rendre à la feuille S sa visibilité d'origine et activation de la feuille d'origine/
Sheets("S").Visible = SVisible
.Sheets(AcSheetName).Select
End With

Application.ScreenUpdating = True
End Sub

Cordialement
 

Pièces jointes

  • Rapport_Hebdo_2022.xlsm
    78.6 KB · Affichages: 8

LuanaDDC

XLDnaute Junior
Bonjour Roblochon,

J'espère que vous allez bien.

Merci pour votre mail !

J'ai essayé mais il m'affiche un PDF en blanc. Il prends bien en compte je suppose ma sélection mais quand je lance la macro, les deux pages sont en blancs...

Ma macro mail je dois l'intégrer également dans le même moduel ?

Merciii
 

Hasco

XLDnaute Barbatruc
Bonjour,
Ma macro mail je dois l'intégrer également dans le même moduel ?
Peut importe le module en l'occurrence pourvu qu'on ait l'ivresse d'une réussite.
J'ai essayé mais il m'affiche un PDF en blanc.
Je pense (ce n'est qu'un avis) qu'il s'agit d'un problème de mise en page.
Il faut que vous mettiez en page vos feuilles ainsi de définissiez vos zones d'impression avant de lancer la macro.

J'ai eu le même problème au premier test et après avoir rajouté les lignes suivantes, cela a fonctionné même si la mise en page n'était pas très jolie.
VB:
' Définir les plages d'impression pour les deux feuilles
Sheets("S").PageSetup.PrintArea = Sheets("S").UsedRange.Address
Sheets("Graphique").PageSetup.PrintArea = "B2:F43"
A vous d'adapter.
 

Pièces jointes

  • attachment.pdf
    116.8 KB · Affichages: 8

Discussions similaires

Statistiques des forums

Discussions
292 799
Messages
1 926 350
Membres
183 036
dernier inscrit
Valère Rousseau