Macro sélectionner toutes les feuilles et enregistre en PDF

Bonjour à tous,

J'essaye de créer une macro qui sélectionne toutes les feuilles de mon classeur et qui l'enregistre en pdf. Aujourd'hui les feuilles sont créées et s'appellent FicheFabModel (2)... jusqu'à la FicheFabModel (50), au fil du mois les feuilles seront renommées.

J'ai fait cette macro mais ça ne fonctionne pas, pourriez vous m'aider svp?

Bien cordialement

Ps: je ne peux mettre de document en pièce jointe car ce sont des documents profesionnels.

Sub Macro3()
'
' Macro3 Macro
'

'
    Sheets.Select
    Sheets("Fichefabmodel").Activate
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\bureau\Anaïs\Fiches de fabrication\Test nouvelles fiches\P.LACTIQUE BIO.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
End Sub

Bonjour,

Je crois que ceci devrait marcher :

Sub Macro3()

    worksheets.Select
    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "Z:\bureau\Anaïs\Fiches de fabrication\Test nouvelles fiches\P.LACTIQUE BIO.pdf" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
        :=False, OpenAfterPublish:=False
End Sub

Cdlt,

Bonjour,

Worksheets.Select est en erreur lorsque j'exécute la macro. Auriez-vous une autre idée svp?

Bonjour,

Il n'y a pas d'erreur chez moi donc j'imagine que vous avez une feuille masquée ? Voici alors un second essai :

Sub Macro3()

Dim ws as worksheet
Dim chemin$
Dim n%
Dim wshide()

Application.screenupdating = false
chemin = "Z:\bureau\Anaïs\Fiches de fabrication\Test nouvelles fiches\P.LACTIQUE BIO.pdf" 'chemin

for each ws in worksheets 'pour chaque feuille du classeur
    if not ws.visible then 'si feuille masquée
        redim preserve wshide(n) 'redimension tableau listant feuilles à remasquer
        wshide(n) = ws.name 'item vaut nom de la feuille
        ws.visible = true 'afficher la feuille
        n = n + 1 'incrémentation n
    end if
next ws

worksheets.Select 'sélection de toutes les feuilles
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, IgnorePrintAreas:=False 'export pdf au chemin voulu
worksheets(wshide).visible = False 'masquage des feuilles démasquées
application.screenupdating = true

End Sub

Cdlt,

Toutes mes excuses, j'oublie de préciser certains paramètres:

- dans le classeur il y a 50 feuilles qui sont démasquées pour la saisie au fur et à mesure

- pour l'impression en pdf j'ai défini une zone d'impression jusqu'à P132 pour chaque feuille.

Avec votre macro, j'ai une impression en PDF mais les feuilles sont blanches. Cela provient probablement du redimensionnement des tableaux. D'ailleurs je ne comprends pas pourquoi dans la macro on souhaite une redimension des tableaux?

Milles merci pour votre aide, j'attends votre réponse avec impatience.

Bien cordialement

Non, le tableau stocke les noms des feuilles masquées avant la procédure pour les masquer à nouveau en fin de procédure.

Comme vous voyez, je n'ai pas touché à votre fichier donc je ne sais pas ce qui se passe au niveau des zones d'impression. L'impression fonctionne et s'arrête aux zones d'impression de chaque feuille en principe. Si certaines feuilles sont en partie vides, il en sort des feuilles blanches. Il faut aussi que vos paramètres de mise en page soient correctement établis en amont (notamment les sauts de page !).

Cdlt,

J'ai défini les zones d'impression pour toutes les feuilles, et concernant les sauts de pages j'ai tout supprimé. Faut il en mettre à la fin de chaque zone d'impression?

Les sauts de page permettent de définir la manière dont la feuille sera découpée à l'impression donc je ne saurais répondre à votre place. Si vous avez toujours besoin d'avoir la totalité de la feuille sur une seule page, ne mettez aucun saut de page (zone d'impression restreinte à une unique page). Si vous avez besoin de diviser une zone d'impression en 3 pages (partie1, 2, 3), insérez 2 sauts de page aux endroits voulus.

Cdlt,

Je vous mets une copie du fichier simplifié. La feuille "Fichefabmodel" sera dupliquée en 50 exemplaires lorsque je l'aurais validé définitivement. Tous les exemplaires seront masqués et j'ai une macro qui permet d'afficher un exemplaire en fonction des besoins. Lorsqu'on affiche une feuille masquée exemple Fichefabmodel (2) on renomme le feuille.

Tout cela fonctionne, il me manque juste la macro pour sauvegarder toutes les feuilles en PDF, votre macro à l'air de fonctionner mais les feuilles sont blanches lorsque je vais regarder le pdf créer. Avec le fichier vous pourrez peut-être trouvé d'où vient le problème.

Un grand merci pour votre aide.

Cordialement

161biscuit.zip (296.41 Ko)

Non, tout semble correct de mon côté. Mais vous avez des feuilles pas vraiment bien mises en page (onglet "Liste" par exemple).

Et vous n'êtes pas obligée d'imprimer toutes les feuilles, vous pouvez choisir. Par exemple, pour n'imprimer que les feuilles visibles et exclure la feuille "Liste" :

Sub Macro3()

Dim ws as worksheet
Dim chemin$
Dim n%
Dim wsprint()

chemin = "Z:\bureau\Anaïs\Fiches de fabrication\Test nouvelles fiches\P.LACTIQUE BIO.pdf" 'chemin

for each ws in worksheets 'pour chaque feuille du classeur
    if ws.visible then 'si feuille visible
        if ws.name <> "Liste" then 'pour l'exemple, si nom différent de "Liste"
            redim preserve wsprint(n) 'redimension tableau listant feuilles à imprimer
            wsprint(n) = ws.name 'item vaut nom de la feuille
            n = n + 1 'incrémentation n
        end if
    end if
next ws

worksheets(wsprint).Select 'sélection de toutes les feuilles à imprimer
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, IgnorePrintAreas:=False 'export pdf au chemin voulu

End Sub

Par ailleurs, vous devriez être vigilante à l'organisation de votre projet car vous avez au moins 25 modules, pas renommés, dont certains contiennent des centaines de lignes de code. On a vite fait de se perdre...

Cdlt,

Bonjour,

Oui je débute complètement dans les macro, je n'ai pas toutes les notions et procédures pour l'organisation. J'ai copié votre macro dans mon fichier d'origine, défini toutes les zones d'impression et le pdf est toujours vide... c'est à ne rien y comprendre -_-

Bonjour,

Je ne sais pas quoi vous dire... J'ai essayé avec votre fichier et le pdf n'avait pas de page blanche, juste les premières pages mal découpées, c'est tout...

Essayez de le faire manuellement et de régler vos paramètres d'impression/options de mise en page.

Et normalement, l'export écrase la version précédente mais vous pourriez supprimer le précédent PDF pour vous assurer de consulter la nouvelle version.

Cdlt,

Rechercher des sujets similaires à "macro selectionner toutes feuilles enregistre pdf"