Menu

Export feuilles excel séparées au format pdf [Résolu]

b.desmarets 22 Messages postés vendredi 5 janvier 2018Date d'inscription 18 mai 2018 Dernière intervention - 14 mai 2018 à 16:07 - Dernière réponse : b.desmarets 22 Messages postés vendredi 5 janvier 2018Date d'inscription 18 mai 2018 Dernière intervention
- 18 mai 2018 à 08:12
Bonjour à tous !

Je souhaiterais avoir une petite commande macro pour exporter des feuilles excel en pdf.
Deux contraintes néanmoins: sur toutes les feuilles, je souhaiterais que seules celles dont les onglets sont sélectionnés (ctrl clic sur chacune) soit exportés et que chaque onglet produise un pdf séparément.

Pour le moment, j'ai pondu cela:

Sub Test()

Dim Fe As Worksheet

For Each Fe In ActiveWindow.SelectedSheets

Fe.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\mesdocuments\" & Fe.Name & ".pdf"

Next Fe

End Sub


Mais dans ce cas il m'exporte certes que les onglets sélectionnés et me produit un pdf par onglet, mais réunit tous les onglets dans chaque pdf...
Le top aussi serait que les pdf soient générés dans un dossier "PDF" dans le même répertoire que le fichier excel.

D'avance merci pour le coup de main, bien à vous.
Bapt.

Afficher la suite 

Votre réponse

16 réponses

cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 19 mai 2018 Dernière intervention - Modifié par cs_Le Pivert le 14/05/2018 à 19:02
0
Utile
Bonjour,

comme ceci:

Option Explicit
Dim nom, chemin  As String
Dim sh As Worksheet
Private Sub CommandButton1_Click()
For Each sh In Workbooks("Save_pdf.xls").Windows(1).SelectedSheets 'adapter nom classeur
 nom = sh.Name
    Save_pdf
 Next
End Sub
Private Sub Save_pdf()
chemin = "C:\Users\LePivert\Documents\" 'chemin du dossier destination à adapter
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        chemin & "\" & nom & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
        False
        MsgBox "Enregistrer" 'on peut supprimer
End Sub

pour le même chemin que le classeur:

 chemin = ActiveWorkbook.Path & "\"



b.desmarets 22 Messages postés vendredi 5 janvier 2018Date d'inscription 18 mai 2018 Dernière intervention - 17 mai 2018 à 18:36
Je reviens juste vers toi Le_Pivert. J'ai dupliqué la macro et l'interface de liste déroulante dans un fichier de la boite. Néanmoins, il semble que lorsque qu'un onglet contient deux pages A4, il n'en exporte qu'une ? Tu penses que l'on peut y remédier ?
Je te joins le fichier pour tester avec l'onglet "avance forfaitaire" par exemple: https://www.cjoint.com/c/HErqJUZE2ny Le raccourci est ctrl+w est il renvoit vers un dossier PDF dans le répertoire du fichier excel.
Merci d'avance, bien à toi.
Bapt.
cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 19 mai 2018 Dernière intervention - 17 mai 2018 à 19:17
Ce soir je n'ai pas trop le temps, mais je vais te donner la solution. Je pense vu le travail que tu as fait que tu vas pouvoir te débrouiller seul. Mais en cas de problème je suis là.

'Enregistrer une feuille par PDF
Sub SavePDF()
chemin = ThisWorkbook.Path & "\PDF\"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
    chemin & ChoixFeuille & ".pdf", Quality:= _
    xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    From:=1, To:=1, OpenAfterPublish:=False 'From:=1 numero de la page début, To:=1 numero de la page fin c'est cette ligne qu'il faut modifier
   MsgBox "Yes Muriel ! Enregistré dans le dossier PDF du classeur :)", vbInformation, "Enregistrement en PDF"
End Sub


Bon courage
b.desmarets 22 Messages postés vendredi 5 janvier 2018Date d'inscription 18 mai 2018 Dernière intervention - 17 mai 2018 à 19:23
Tip top ! Encore merci ! :)
cs_Le Pivert 5144 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 19 mai 2018 Dernière intervention - 18 mai 2018 à 08:10
J'ai mis la détection du nombre de pages automatiquement. J'ai ajouté dans ThisWorkbook la création du dossier PDF si il n'existe pas

https://www.cjoint.com/c/HEsgibkxtcQ

Bonne journée

@+ Le Pivert
b.desmarets 22 Messages postés vendredi 5 janvier 2018Date d'inscription 18 mai 2018 Dernière intervention - 18 mai 2018 à 08:12
Royal ! Merci et bonne journée !
Bapt.
Commenter la réponse de cs_Le Pivert