Imprimer tous les onglets

Bonjour à tous,

j'ai demandé à chat gpt de me créer une macro pour imprimer l'ensemble des onglets d'un fichier.

pour le résultat je n'ai qu'un onglet d'imprimé...

Sub Imprimer_PDF()

    Dim CheminDest As String
    Dim Feuille As Worksheet

    'Récupérer le chemin de destination du PDF
    CheminDest = Application.GetSaveAsFilename(FileFilter:="PDF (*.pdf), *.pdf")

    'Sortir de la macro si l'utilisateur annule la sauvegarde
    If CheminDest = "False" Then Exit Sub

    'Début de la configuration de l'impression
    With ActiveSheet.PageSetup
        .Orientation = xlPortrait 'Orientation de la page
        .Zoom = False 'Désactiver le zoom
        .FitToPagesWide = 1 'Ajuster à une page en largeur
        .FitToPagesTall = False 'Ne pas ajuster à une page en hauteur
    End With

    'Imprimer chaque feuille
    For Each Feuille In ActiveWorkbook.Worksheets
        Feuille.PrintOut Copies:=1, ActivePrinter:="Microsoft Print to PDF", _
            PrintToFile:=True, PrToFileName:=CheminDest
    Next Feuille

End Sub

est ce que vous savez où ça beug ?

merci d'avance

Bonjour

Pour imprimer tous les onglets il ya 2 cas : soit on veut une pagination continue ou aucune pagination et dans ce cas il suffit de sélectionner tous les onglets et lancer l'impression.

Si chaque onglet doit paginé séparément il faut effectivement une boucle

Je mettrais le PageSetup dans la boucle...

Je pense qu'il manque le nom de chaque pdf et que chaque impression écrase le fichier précédent

Merci pour ta réponse:

voila le texte fonctionnant:

Sub Imprimer_PDF()

    Dim CheminDest As String
    Dim Feuille As Worksheet
    Dim DerniereLigne As Long

    'Récupérer le chemin de destination du PDF
    CheminDest = Application.GetSaveAsFilename(FileFilter:="PDF (*.pdf), *.pdf")

    'Sortir de la macro si l'utilisateur annule la sauvegarde
    If CheminDest = "False" Then Exit Sub

    'Exporter toutes les feuilles de calcul dans un seul fichier PDF
    With ActiveWorkbook
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=CheminDest, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

        'Mise en page de la première feuille
        With .Worksheets(1).PageSetup
            .Orientation = xlPortrait 'Orientation de la page en portrait
            .Zoom = False 'Désactiver le zoom
            .FitToPagesWide = 1 'Ajuster à une page en largeur
            .FitToPagesTall = 1 'Ajuster à une page en hauteur
            .PrintArea = "" 'Réinitialiser la zone d'impression
        End With

        'Ajuster la mise en page pour chaque feuille à partir de la 2ème
        For Each Feuille In .Worksheets
            If Feuille.Index > 1 Then
                With Feuille.PageSetup
                    .Orientation = xlLandscape 'Orientation de la page en paysage
                    .Zoom = False 'Désactiver le zoom
                    .FitToPagesWide = 1 'Ajuster à une page en largeur
                    .FitToPagesTall = False 'Ne pas ajuster à une page en hauteur
                    .PrintArea = "" 'Réinitialiser la zone d'impression
                End With

                'Définir la zone d'impression pour chaque feuille
                DerniereLigne = Feuille.Cells.Find(What:="*", SearchOrder:=xlByRows, _
                    SearchDirection:=xlPrevious).Row
                Feuille.PageSetup.PrintArea = Feuille.Range("A1:IV" & DerniereLigne).Address
            End If
        Next Feuille
    End With

    'Afficher un message à la fin de l'impression
    MsgBox "L'impression en PDF est terminée."

End Sub

bonne journée

Rechercher des sujets similaires à "imprimer tous onglets"