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