Imprimer toutes les fiches en pdf

Bonsoir Forum,

Honorables membres
J'ai une fiche d'information qui est générée à partir d'une base de données en changeant le nombre ordinal via la cellule L2 de sorte que si je veux imprimer en boucle toutes les cartes, commencez à partir de 1 valeur L2 jusqu'à la fin de la valeur cellule L5, que j'ai programmée pour récupérer la valeur maximale des numéros d'ordre Je vous prie d'intervenir afin de faire fonctionner ce code efficacement Afin d'imprimer toutes les cartes, il vaut mieux un MsgBox demandant à l'imprimeur d'imprimer les cartes individuellement ? En choisissant Oui, les cartes sont imprimées individuellement, c'est-à-dire que la carte de chaque employé est isolée dans un seul fichier, et en choisissant Non imprimer toutes les Fiches ensemble dans un seul fichier,Et que le fichier pdf soit imprimer au meme emplacement thisworkbook .J'ai défini la zon d'imprission.

voici le code donne seulement une page vide

Merci beaucoup pour l'attention que vous avez portée à mon problème.

Sub imprimer_fiches_pdf()

    Dim ws As Worksheet
    Dim rngImprimer As Range
    Dim rngCritere As Range
    Dim critereCell As Range
    Dim critere As Variant
    Dim pdfFileName As String

    ' Spécifier le nom du fichier PDF
    Application.ScreenUpdating = False
    pdfFileName = "fiches_" & Format(Now(), "yyyymmdd_hhmmss") & ".pdf"

    ' Référence à la feuille "Feuil4"
    Set ws = ThisWorkbook.Sheets("Feuil4")

    ' Plage à imprimer (B2:H46)
    Set rngImprimer = ws.Range("B2:H46")

    ' Plage des critères (L2:L5)
    Set rngCritere = ws.Range("L2:L5")

    ' Boucle à travers les valeurs des critères
    For Each critereCell In rngCritere
        critere = critereCell.Value

        ' Filtre les données en fonction du critère
        rngImprimer.AutoFilter Field:=1, Criteria1:=critere

        ' Imprime la zone filtrée en PDF
        ws.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFileName, _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, _
            IgnorePrintAreas:=False, OpenAfterPublish:=False

        ' Désactive le filtre
        ws.AutoFilterMode = False
    Next critereCell

    ' Affiche un message lorsque l'opération est terminée
    MsgBox "Impression terminée !"
    Application.ScreenUpdating = True

End Sub

Bonsoir Forum

s'il vous plait

ce code vba fonctionne bien quand je choisis non (non groupés)

mais quand je choisis groupés Le résultat au format de page de carte est une carte imbriquée dans une autre carte sur la même page et non chaque carte sur une page séparée, Quelle est la solution à combiner dans un seul fichier et chaque carte dans une page séparée? et merci beaucoup

Sub imprimer()
    If Not ActiveSheet.Name Like "Feuil4*" Then Exit Sub ' sécurité
    Dim chemin$, rep As Byte, a$, h&, i&
    chemin = ThisWorkbook.Path & "\cartes \"
    If Dir(chemin, vbDirectory) = "" Then MkDir chemin ' création du dossier

    MsgBox "dossier sauvegaede au meme emplacement"

    rep = MsgBox("tu veux fichier groupés¿", 3)
    If rep = 2 Then Exit Sub
    Application.ScreenUpdating = False
    With ActiveSheet
        .PageSetup.Zoom = False
        .PageSetup.FitToPagesTall = 1 ' 1 page en hauteur, détermine le zoom
        If rep = 6 Then ' Oui
            a = .PageSetup.PrintArea
            h = .Range(a).Rows.Count
            .Copy ' nouveau document
            With ActiveSheet
                .PageSetup.PrintArea = ""
                For i = 1 To Val(.Range("L5").Value) - 1
                    .Range(a).EntireRow.Offset(h * i - h).Copy .Range("A1").Offset(h * i)
                    .Range("L2").Offset(h * i).Value = i + 1
                    .HPageBreaks.add Before:=.Range("A1").Offset(h * i) ' saut de page
                Next
                .PageSetup.PrintArea = .Range(a).Resize(h * i).Address
                .PageSetup.FitToPagesTall = i
                .ExportAsFixedFormat xlTypePDF, chemin & "Groupé.pdf"
                .Parent.Close False ' fermeture du document
            End With
            MsgBox "fichiers groupés"
        Else ' Non
            For i = 1 To Val(.Range("L5").Value)
                .Range("L2").Value = i
                .ExportAsFixedFormat xlTypePDF, chemin & .Range("L2").Value & ".pdf"
            Next
            .Range("L2").Value = 1
            MsgBox i - 1 & " : nombre des fichiers"
        End If
    End With
    Application.ScreenUpdating = True
End Sub

Bonjour hicham2610

Si vous voulez des réponses

A+

Rechercher des sujets similaires à "imprimer toutes fiches pdf"