Menu

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

Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Dernière intervention
18 mai 2018
- - Dernière réponse : b.desmarets
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Dernière intervention
18 mai 2018
- 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

1 réponse

Meilleure réponse
Messages postés
5639
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 décembre 2018
456
1
Merci
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 & "\"



Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CommentCaMarche

CCM 42631 internautes nous ont dit merci ce mois-ci

b.desmarets
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
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.
cs_Le Pivert
Messages postés
5639
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 décembre 2018
456 -
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
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Dernière intervention
18 mai 2018
-
Tip top ! Encore merci ! :)
cs_Le Pivert
Messages postés
5639
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 décembre 2018
456 -
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
Messages postés
22
Date d'inscription
vendredi 5 janvier 2018
Dernière intervention
18 mai 2018
-
Royal ! Merci et bonne journée !
Bapt.
Commenter la réponse de cs_Le Pivert