Macro pour extraire plusieurs onglet excel au format PDF [résolu]

Nono89

XLDnaute Nouveau
Bonjour,

Concernant la question du passage de excel vers un format pdf via macro le sujet a déjà été abordé.
Mais je sollicite un coup de main pour un point plus particulier :

Comment convertir plusieurs onglets en pdf en créant un pdf par onglet.
L'idée serai de partir d'un onglet de référence où ressortirait la liste des onglets à extraires.

Pour expliquer le contexte:
dans un fichier j'ai les onglets qui servent de base d'informations et un onglet par boutique (environ 70 boutiques). Je souhaiterais convertir chaque onglet boutique (boutique 1, boutique 2, ...) au format pdf en les enregistrant dans un dossier qui porte le nom du responsable de la boutique (un responsable à plusieurs boutique) et que le fichier porte le nom de la boutique et du mois inscrit sur l'onglet (qui est pas forcément le mois en cours)

Pour l'instant avec les informations que j'ai trouvé sur différent forum j'ai réussi à faire une macro qui me pemette de convertir un onglet unique au format pdf en l'enregistrant sous le nom souhaité et dans le dossier voulu
Voilà comment ce présente le code pour le moment :

Sub creation_fichier_pdf()
Dim Boutique$, Mois$, Resp$, NomFichierPDF As String
Resp = Range("M2")
Mois = Range("E2")
Boutique = Range("B2")
NomFichierPDF = Mois & "_" & Boutique & ".pdf"
ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="K:\RDS\" & Resp & "\" & NomFichierPDF & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
End Sub


Débutant dans avec les macro cette présentation vas peut être vous sembler artstique mais en tout cas ça fonctionne pour un fichier à onglet unique. Par contre si j'ai bien compris ce code ne fait nullement référence à onglet.

Donc j'aimerais mettre ce code en boucle pour le répéter sur une liste d'onglet prédéfinie.


Merci d'avance.
 
Dernière édition:

Nono89

XLDnaute Nouveau
Re : Macro pour extraire plusieurs onglet excel au format PDF

J'ai finalement trouvé une solution à mon problème pour enregistrer des onglets excel au format PDF à partir d'une liste dans le fichier actif si cela peut aider :

Sub onglet_FormatPDF()
Dim Boutique$, Mois$, Resp$, NomFichierPDF As String, Tableau() As String
ActiveCell.CurrentRegion.Select
ReDim Tableau(1 To ActiveCell.CurrentRegion.Count)


For Ctr = 1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr) = ActiveCell.CurrentRegion(Ctr)
Next
For Ctr = 1 To ActiveCell.CurrentRegion.Count
Resp = Sheets(Tableau(Ctr)).Range("N2")
Mois = Sheets(Tableau(Ctr)).Range("F2")
Boutique = Sheets(Tableau(Ctr)).Range("B2")
NomFichierPDF = Mois & "_" & Boutique & ".pdf"
Sheets(Tableau(Ctr)).ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="K:\JM\RDS\" & Resp & "\Boutique\" & NomFichierPDF & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False


Next
End Sub
 

T77XDD

XLDnaute Occasionnel
Re : Macro pour extraire plusieurs onglet excel au format PDF

Bonsoir, est ce que tu peux m'expliquer la syntaxe, stp.
Pour ma part je suppose que je devrais avoir "Sub onglet_DP()", en-suite si je lance je suis toujours arrété à "Resp = Sheets(Tableau(Ctr)).Range("NumDP_4")" ou "Resp = Sheets(Tableau(Ctr)).Range("I1")".
Merci d'avance d'avance de votre aide.
 

Nono89

XLDnaute Nouveau
Re : Macro pour extraire plusieurs onglet excel au format PDF

Bonjour,

La présentation de ton problème est pas super claire, voilà quelque explication :


En faite pour expliquer un peu le code

la variable "Resp" me permet de faire référence dans chaque onglet à une cellule qui correspond au nom du responsable
Resp = Sheets(Tableau(Ctr)).Range("N2")
en cellule N2 de l'onglet qui va être enregistré au format PDF.

Et j'ai créée un dossier par responsable. Donc à partir de cette référence le pdf s'enregistre automatiquement dans le dossier correpsondant à ce nom "Resp"

Filename:="K:\JM\RDS\" & Resp & "\Boutique\" & NomFichierPDF & ".pdf", _


Si ça peut de t'aider.

Ps :je précise je suis débutant en VBA et ce code je l'ai reconstitué à partir de bout de code que j'ai trouvé à droite à gauche, il faudrait peut être les conseil de quelqu'un de plus calé.
 

T77XDD

XLDnaute Occasionnel
Re : Macro pour extraire plusieurs onglet excel au format PDF

Bonjour et merci pour cette réponse.
En fait j'ai pas mal avancé par le biais de cette discution
https://www.excel-downloads.com/threads/enregistrement-en-pdf-resolu.187215/
Je suis donc arrivé à imprimer et enregistrer la feuille concernée avec ces lignes de code
Code:
Sub onglet_FormatPDF()
Dim Ents$, Locs$, DPs$, NomFichierPDF As String, Tableau() As String
ActiveCell.CurrentRegion.Select
ReDim Tableau(1 To ActiveCell.CurrentRegion.Count)
For Ctr = 1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr) = ActiveCell.CurrentRegion(Ctr)
Next
For Ctr = 1 To ActiveCell.CurrentRegion.Count
DPs = Sheets("DP").Range("I1")
Locs = Sheets("DP").Range("C8")
Ents = Sheets("DP").Range("E8")
App = Sheets("DP").Range("C7")
Bat = Sheets("DP").Range("C5")
NomFichierPDF = "DP" & " " & DPs & " " & Locs & " " & Ents
Sheets("DP").ExportAsFixedFormat Type:=xlTypePDF, _
Filename:="C:\DP\" & Bat & "\" & App & "\" & NomFichierPDF & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Next
End Sub
Mais lors de l'impression, j'imprime 3 feuilles, la feuille concernée + 2 blanches et l'enregistrement dure plus de 30 secondes sans aucune possibilité de faire quoi que ce soit.
Je pense que cela vient de là et je ne sais pas de quoi il en retourne
Code:
For Ctr = 1 To ActiveCell.CurrentRegion.Count
Tableau(Ctr) = ActiveCell.CurrentRegion(Ctr)
Merci de me donner un éclairage sur ça
 

Nono89

XLDnaute Nouveau
Re : Macro pour extraire plusieurs onglet excel au format PDF

Cette partie de code, si je me trompe pas sélectionne l'ensemble des cellules de la zone qui sont remplies (comme Ctrl + *) et répète une opération souhaitée pour chaqu'une des cellules de la sélection.

à confirmer!!
 

T77XDD

XLDnaute Occasionnel
Re : Macro pour extraire plusieurs onglet excel au format PDF (Résolu)

Bonsoir, et désolé pour cette réponse tardive.
C'est bien ça puisque pour arriver à me débarrasser des 3 pages supplémentaires j'ai dû copier la zone qui m'intéressai pour la coller sur une nouvelle page et supprimer l'ancienne après vérif de tous les liens etc etc
Merci encore de votre aide précieuse.
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
311 729
Messages
2 081 966
Membres
101 852
dernier inscrit
dthi16088