Convertir des feuilles en fichier pdf individuel

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 !

lefou63

XLDnaute Nouveau
Bonsoir,

J'ai trouve comment decouper une feuille en plusieurs feuilles dans le meme classeur.

Il me faudrait trouvé comment decouper ces feuilles pour les mettre dans un fichier PDF individuel (un pdf par feuille) avec un nom que je choisis

Merci.
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Bonjour lefou63, le fil, le forum

Je pense que tu trouveras des exemples de codes VBA faisant cela dans des fils de discussions déjà existants sur le forum.
Pour les trouver, utilises le moteur de recherche du forum
avec comme mot-clé: PDFCreator
(entre autres: tu peux aussi essayer : export pdf* )

EDITION: bonjour kiki29
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Bonjour lefou63, JM, Kiki

Il est vrai que sous Xl2007, c'est assez simple:

Exemple (code généré avec l'aide d'Henry):

Code:
Sheets(Array("Feuil1", "Feuil1 (2)")).Select
    Sheets("Feuil1").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\test.pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=True
 
Re : Convertir des feuilles en fichier pdf individuel

Merci pour vos réponses 😛

J'ai actualisé mon premier post quand j'avancais et hier soir j'ai trouvé pour enregistrer en pdf, du coup j'ai employé le truc de mj13 enfin plus ou moins 😀 Mais j'ai pas eu le courage d'actualiser le post.

Donc j'ai avancé, mais le probleme c'est long a faire, j'ai plus ou moins 50 feuilles, donc ça me donne ça

Code:
    Sheets("Feuil48").Select
      ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "pdf\fichier48.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    Sheets("Feuil49").Select
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "pdf\fichier49.pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

C'est un peu long, ça me gene pas de le faire mais evidement les fichiers ne s'apel pas fichier49.pdf... mais avec des noms de personnes/entreprises. Et si je rajoute des feuilles ça va plus.
Comment puis je faire pour que ça prenne le contenu de la cellule g3 pour nom de fichier, j'ai essayé differente chose (range (g3).value, ou g3.value) mais sans succés 🙁. Passer par un xls avant me derange pas, et m'arrange, puis que je devrais avoir le xls conrrespondant au pdf.

Ah oui et comment faire pour que le chemin soit, repertoire_courant/pdf/, parce que hier soir en faisant pdf\xxx.pdf ça fonctionner et ce matin ça veut plus.

Merci, bonne journée

edit:
Avec ça j'ai pas besoin de specifier le nom du pdf :
Code:
  ChDir "REPERTOIRE COURANT\xls"
    ActiveWorkbook.SaveAs Filename:= _
        "xxxx.xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False
    ChDir "REPERTOIRE COURANT\pdf"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "", Quality _
        :=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
    ActiveWindow.Close
End Sub

Me reste plus qu'a pouvoir assigner une cellule pour nom de fichier et a trouver pour avoir le repertoire courant.

Bonne journée a tous 😀
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

J'ai ouvert ton fichier ça me met une erreur de debogage 🙁

Me faut juste que ma cellule G3 soit mon nom de fichier xls.

Code:
ChDir "D:\Desktop\xd\ED76105sage74-decouper\xls"
    ActiveWorkbook.SaveAs Filename:= _
        "[B]CELLULE G3[/B].xls", _
        FileFormat:=xlExcel8, Password:="", WriteResPassword:="", _
        ReadOnlyRecommended:=False, CreateBackup:=False

Avec ça ça enregistré dans le meme repertoire ou ya le classeur avec toutes les feuilles.
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Re,erreur sur le chemin et ensuite tu en auras une autre avec un pdf illisible
La solution de MJ13 devraitf onctionner mais quant on ne comprend rien à ce qu'on fait
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Oui je reconnais volontiers que je ne comprend pas trop tout, mais j'essaye. Faut un debut a tout 😀 Tu noteras d'ailleurs que je n'ai pas dit que ça fonctionné pas, juste que ça me mettait une erreur.

Effectivement en changeant le chemin dans le fichier de MJ13 j'ai bien deux fichiers qui se font a partir des feuilles.
Je vais essayer de l'incorporer a mon fichier, merci MJ13 😀

++

edit : ouaiii, ça fonctionne niquel, j'ai bien mets pdf. Faut juste que je change le chemin si je change de repertoire mais ya qu'une toute petite ligne a modifier donc c'est cool 😀
Merci bien.

Je vais etre encore un peu chiant, c'est possible de faire pareil en xls, c'est a dire une feuille=un fichier xls ?
Parce que j'ai bien trouvé un truc mais c'est assez long.

Bonne soirée a tous 😀
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Henry c'est l'enregistreur de macro ?
Avant de demander j'essaye toujours de chercher, je trouve bien des solutions mais bon c'est assez compliqué desfois, je me dis ya sans doute plus simple, preuve avec ton code vraiment tout petit tout a l'heure 😎

Parce que j'ai essayé avec Henry, mais je dois copier, coller la feuille dans un nouveau document, ajuster les lignes, mettre les sauts d'impression correctement, en paysage, enregistrer et fermer ça fonctionne bien, mais je sais pas faire repeter l'action pour toutes les feuilles du classeur sans passer par la selection de la feuille suivante et refaire tout.

Du coup ça me donne ça :
Code:
Sheets("Feuil42").Select
    Rows("1:30").Select
    Selection.Copy
    Workbooks.Add
    ActiveSheet.Paste
    Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Rows("1:30").Select
    Selection.RowHeight = 20
    Rows("1:1").Select
    Selection.RowHeight = 25
    Application.CutCopyMode = False
    With ActiveSheet.PageSetup
        .PrintTitleRows = ""
        .PrintTitleColumns = ""
    End With
    ActiveSheet.PageSetup.PrintArea = ""
    With ActiveSheet.PageSetup
        .CenterHorizontally = True
        .CenterVertically = True
        .Orientation = xlLandscape
    End With
    ActiveWindow.View = xlPageBreakPreview
    ActiveSheet.HPageBreaks(1).DragOff Direction:=xlDown, RegionIndex:=1
Application.DisplayAlerts = False
Chemin = ActiveWorkbook.Path
Fichier = Cells(3, 7) & Cells(4, 7).Value
ActiveWorkbook.SaveAs Filename:=Chemin & "D:\Desktop\xd\ED76105sage74-decouper\xls\" & Fichier & ".xls", FileFormat _
:=xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:= _
False, CreateBackup:=False
ActiveWindow.Close

Donc je change a chaque fois le numero de feuille en haut, mais bon c'est long, dois certainement yavoir beaucoup plus rapide.
Du coup je demande.

Avec la liste ça aurait été bien. J'ai bien essayé avec ton fichier mais sans succés.

edit: enfaite j'ai trouvé juste apres avoir envoyé, faut que je me mette mon bazar apres Sheets(NomF).Select et c'est bon. 😛

Merci bien, bonne soirée.
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Re

Parce que j'ai essayé avec Henry, mais je dois copier, coller la feuille dans un nouveau document, ajuster les lignes, mettre les sauts d'impression correctement, en paysage, enregistrer et fermer ça fonctionne bien, mais je sais pas faire repeter l'action pour toutes les feuilles du classeur sans passer par la selection de la feuille suivante et refaire tout.

Ex de code:

Code:
 nf = ActiveWorkbook.Sheets.Count
        For N = 1 To nf
    Sheets(N).select
      ton code....
    Next

Et bien voila, je considère que tu es sur la bonne voie 😉.

L'intérêt d'Henry, c'est qu'il te donne le code assez rapidement sans trop te prendre la tête.

Ensuite, il faut allez petit à petit. Quand je développe, je l'utilise souvent mais juste pour des petits bouts de code que j'assemble en déboguant (il suffit de mettre un stop dans ton code et d'aller en pas à pas avec F8 et ctri+shift+F8). En plus en déboguant, tu vois comment sont interprétées tes variables et tu peux changer directement le code en montant et descendant avec la souris.

Prend ton temps, essaye de comprendre et tu y arriveras. Au début, même si tu laisse un code pas très net, ce n'est pas grave. L'important c'est que cela fonctionne en 5 minutes et que tu puisses le refaire pour un autre problème.

Bon Week-end 🙂.
 
Dernière édition:
Re : Convertir des feuilles en fichier pdf individuel

Salut a tous 😀

Alors voila, j'ai fait ça pour envoyer le pdf en mail, ça fonctionne tres bien quen je l'utilise avec des fichiers XLS, mais en pdf il ne m'affiche pas l'objet.
Je pense qu'il faut appeler le classeur precedant contenant la page 2, mais j'ai essayé diverse chose, mais je n'ai pas réussi 🙁

Comment puis je faire ?
Et aussi comment mettre le repertoire courant dans filename et dans le fichier attaché ?

Merci par avance, bonne journée.

Code:
chemin = ActiveWorkbook.Path
Fichier = Cells(3, 7).Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:="D:\pdf\" & Fichier & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False

RecipientAdres = Range("V6")
RecipientCC = Range("AB6")
lesujet = Sheets(2).Range("A2") & Sheets(2).Range("B2") & Sheets(2).Range("C2")
chemin = ActiveWorkbook.Path

Set myOLApp = CreateObject("Outlook.application")
Set myItem = myOLApp.CreateItem(olMailItem)
myItem.Display
myItem.To = "" & RecipientAdres & ""
myItem.CC = "" & RecipientCC & ""
myItem.BCC = ""
myItem.Subject = "" & lesujet & ""
myItem.HTMLBody = "" + myItem.HTMLBody
myItem.Attachments.Add "D:\pdf\" & Fichier & ".pdf"
ActiveWindow.Close
 
Re : Convertir des feuilles en fichier pdf individuel

Salut.
Non ça fonctionne pas, ça m'ouvre les fenetres outlook sans sujet.
Mais c'est normal puisque dans le pdf il n'y a qu'une seule page. Là j'apel une page2 qui n'existe pas :s

Et j'ai mis le display au debut car sinon la signature outlook ne fonctionne pas.
 
- 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
8
Affichages
240
  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
246
Réponses
3
Affichages
673
  • Question Question
Microsoft 365 Liens hypertexte
Réponses
4
Affichages
280
Retour