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

Signaler
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Statut
Membre
Dernière intervention
18 mai 2018
-
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Statut
Membre
Dernière intervention
18 mai 2018
-
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.

1 réponse

Messages postés
6868
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 août 2020
535
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 & "\"



1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57007 internautes nous ont dit merci ce mois-ci

Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Statut
Membre
Dernière intervention
18 mai 2018

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.
Messages postés
6868
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 août 2020
535
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
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Statut
Membre
Dernière intervention
18 mai 2018

Tip top ! Encore merci ! :)
Messages postés
6868
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
7 août 2020
535
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
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Statut
Membre
Dernière intervention
18 mai 2018

Royal ! Merci et bonne journée !
Bapt.