XL 2016 VBA - Export PDF de feuilles sur plusieurs classeurs ouverts

  • Initiateur de la discussion Initiateur de la discussion ml121
  • Date de début Date de début

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 !

ml121

XLDnaute Nouveau
Bonjour ,

Je suis à la recherche d'un peu d'aide concernant un code, plus précisément une boucle que je n'arrive pas à boucler !

J'ai plusieurs classeurs ouverts. Chacun avec 5 onglets contenant des données. Je cherche à exporter en PDF tous les onglets de chaque classeur sur un fichier contenant le nom du classeur ex :

Classeur 1 / Onglets A-B-C --- PDF C1 avec les pages A-B-C
Classeur 2 / Onglets A-B-C --- PDF C2 avec les pages A-B-C

J'ai réussi à initialiser une boucle qui me crée bien un document par classeur avec le nom du classeur, mais le soucis est qu'il ne change pas de selection de feuille : sur tous les documents (avec un nom différent), je vois les même données.

Je suis débutant en VBA c'est pour cela que je me permet de vous solliciter.

Voici mon code :

Sub export_pdf()

Dim wb As Workbook
Dim rep As String
rep = "C:\....\A SUP\"

Application.ScreenUpdating = False
For Each wb In Application.Workbooks

Sheets(Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
rep & wb.Name, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Next wb
Application.ScreenUpdating = True
End Sub
 
Merci de votre réponse, néanmoins mon problème n'est pas résolu.

Les pages exportées sont maintenant vierges. et plus rien n'apparaît alors que dans le premier code j'avais bien tous les onglets d'un classeur.

Autre question : je dois placer ce code dans un module d'un classeur ou directement dans un thisworkbook des classeurs ouverts ?
 
Re,

Dans un module de code.

Sheets(Array(......)) ne sélection que les feuilles du classeur actif (en l'occurence celui de la macro).
Pour que la macro sélectionne les feuilles du classeur parcourru (wb) mettre:

wb.Sheets(Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi")).Select

J'aurais du le voir plus tôt🙂

Même si c'est possible de mettre la macro dans un module de feuille ou ThisWorkbook, ces derniers sont plutôt utilisés pour gérér des évènements particuliers de classeur ou de feuille.

cordialement
 
Le code suivant me renvoi l'erreur : la méthode Select de la classe Sheets a echouée...

Sub export_pdf()

Dim wb As Workbook
Dim rep As String
rep = "C:\...\A SUP\"

Application.ScreenUpdating = False
For Each wb In Application.Workbooks
wb.Sheets(Array("Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi")).Select
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
rep & wb.Name, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Next wb
Application.ScreenUpdating = True
End Sub
 
Dernière édition:
Du coup voici le code qui fonctionne :

Note : Je savais que les onglets à exporter étaient toujours les 5 premiers c'est pour cela que j'ai changé la méthode de selection. En passant avec une selection par nom comme initialement prévue (Lundi,Mardi,...), j'avais toujours des feuilles manquantes car les onglets sont nommés une fois en majuscule puis une autre fois en minuscule...bref casse différente à chaque fichier.

Sub t2()

Dim wb As Workbook
Dim rep As String
Dim onglet As Variant


rep = "MASQUE VOLONTAIREMENT" 'Repertoire du fichier PDF
onglet = Array(1, 2, 3, 4, 5)

Application.ScreenUpdating = False
onglet = Array(1, 2, 3, 4, 5)

For Each wb In Application.Workbooks
wb.Activate
Sheets(onglet).Select 'Selection des feuilles à exporter
wb.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
rep & wb.Name, Quality:= _
xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
OpenAfterPublish:=True

Next wb


Application.ScreenUpdating = True
End Sub
 
Dernière édition:
- 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
3
Affichages
537
Réponses
3
Affichages
822
Réponses
10
Affichages
486
Retour