Impression sur un seul fichier PDF
Bonjour tout le monde,
J'ai besoin de vos talents sur Excel et VBA.
J'annonce, je suis un parfait débutant dans le monde du VBA mais j'essaie de progresser en parcourant votre excellent site.
Je construis un fichier pour synthétiser différentes données de différents produits sur un seul onglet.
Je souhaite imprimer en PDF ce fameux onglet "Synthèse" en fonction d'une liste dans un seul fichier PDF (voir pièce jointe).
Avec la macro suivante, j'arrive à imprimer en fonction de la liste avec une page de titre mais jamais dans un seul fichier PDF (j'ai toujours une fenêtre qui s'ouvre ou je dois cliquer dans ADD TO NEXT pour obtenir un seul PDF).
J'aimerai ne plus avoir à chaque fois cliquer sur ce bouton (20x c'est ennuyant à la longue).
J'ai essayé maintes fois d'arriver à solutionner mon problème avec les différents sujets ouverts mais impossible je suis trop mauvais.
Pouvez-vous m'aider à compléter cette macro ? (et si possible d'avoir des commentaires à côté du code afin que je puisse comprendre et ainsi l'intégrer ?)
D'avance je vous remercie beaucoup pour votre précieuse aide.
Sub imprimSelec()
'
' Imprimer toutes les feuilles des calibres sélectionnés en un seul fichier PDF Macro
'
If Application.Dialogs(xlDialogPrinterSetup).Show = True Then Sheets("Page de titre").PrintOut Copies:=1, Collate:=True
Feuil1.PrintOut
Dim C As Range
For Each C In [Calibres3].Cells
If C <> 0 Then
[a1] = C
Range("A3").Select
Else
Exit For
End If
Next
ActiveSheet.PrintOut
End Sub
Je m'en suis finalement sorti avec ce code qui est tiré d'un autre post dans le forum.
Merci à son créateur.
Sub imprimSelec()
'
' Imprimer toutes les feuilles des calibres sélectionnés en un seul fichier PDF Macro
'
Dim i As Integer
Dim wbdest As Workbook
Dim wbsource As Workbook
Call Module1.MàJ
'nom du fichier pdf
nom_fichier = "\" & Sheets("Page de titre").[A2] & "_" & Sheets("SELECTION_DATES").[H5] & "_" & Sheets("Synthese").[AA2]
With Application
.ScreenUpdating = False
.EnableEvents = False
End With
Set wbsource = ActiveWorkbook
Sheets("Page de titre").Copy
Set wbdest = ActiveWorkbook
Feuil1.Copy After:=wbdest.Sheets(wbdest.Sheets.Count)
For i = 5 To Feuil1.Range("AA65536").End(xlUp).Row
Feuil1.Range("A1") = Feuil1.Range("AA" & i).Value
Call Module1.MàJ
Feuil1.Copy After:=wbdest.Sheets(wbdest.Sheets.Count)
ActiveSheet.Name = "fiche" & i - 5
ActiveSheet.Range("A1:V80") = wbsource.Sheets("Synthese").Range("A1:V80").Value
wbsource.Activate
Next
wbdest.Activate
'enregistrement au format pdf
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=wbsource.Path & nom_fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=True ' sauvegarde du fichier au format pdf
'fermeture du fichier temporaire sans enregistrement
ActiveWorkbook.Close False
End Sub