[VBA EXCEL]: Enregistrer une feuille d’Excel au format PDF dans un dossier

Bonjour à tous,

j'ai créé un fichier Excel(pj; les données à l'intérieur sont fictives) qui me permet traiter des salaires. Dans la feuille "bulletin" du fichier j'ai créé un modèle de bulletin de salaire qui me sort le bulletin de chaque salarié en choisissant un matricule donné de la liste déroulante sur la cellule H5. Mais l'impression des bulletins de salaires me prennent beaucoup de temps. Je dois les faires les uns après les autres.

je souhaite grâce à VBA Excel pouvoir enregistrer en un clic l'ensemble des bulletins de salaires au format PDF dans un dossier avec indication pour chaque bulletin le nom du salarié.

Feuille à imprimer : "BULLETIN"

Zone d’impression : A1 : J62

Je compte beaucoup sur votre aide pour rejoindre ce problème.

Merci d'avance

Bonjour lbou481,

Il y a beaucoup d'exemples un peu partout ...

L'un au hasard ... https://forum.excel-pratique.com/excel/enregistrer-une-feuille-sous-pdf-avec-nom-dans-une-cellule-t9...

ric

Bonjour Ric, lbou481 et le forum,
Ton fichier en retour
Bonne continuation jc

Re à tous

modif pour n'avoir que une page en sauvegarde plus ne pas imprimer le bouton

Bonjour FERDINAND.

Tout d'abord merci d'avoir pris votre temps pour m'aider à rejoindre mon problème.

j'ai testé le fichier et ça marche. le document est imprimé au format PDF et sauvegardé dans le dossier que j'ai indiqué.

maintenant j'ai deux problèmes:

1- la zone d'impression: le macro imprime toute la feuille. Je veux qu'il m'imprime juste de la cellule A1 à la cellule J62

2 - le macro n'imprime qu'un seul bulletin à la fois. Mon souhait c'est m'imprimer la totalité des bulletins de mes 100 salariés en un clic. si possible j'aimerais avoir une boucle qui copie le matricule de la cellule A3 de la feuille "éléments de salaire"; le coller dans la cellule H5 de la feuille "BULLETIN" puis enregistre le bulletin dans le dossier. Ensuite il refait la même chose avec le matricule suivant. le macro doit continuer à faire cette boucle et s'arrêtera quand il rencontrait une cellule vide dans la colonne A:A de la feuille "éléments de salaires".

Merci d'avance.

Bonjour à tous,

voici le code modifié avec l'ajout d'une boucle pour imprimer tous les bulletins. Il faut d'abord changer dans la feuille BULLETIN cellule H5 la référence pour exclure l'en-tête MATRICULE.

='élements de salaires'!$A$2:$A$102 devient ='élements de salaires'!$A$3:$A$102

Sub Export_BulletinSalaire() 'sans impression*****************ok au 12/02/2022

Dim Fichier As String
Dim plage As Range
Dim first As Variant
Dim r As Range, c As Range, inputRange As Range

'Set plage = Intersect([1:65536], ActiveSheet.UsedRange)
Set plage = Sheets("BULLETIN").Range("A1:J62")

If Not plage Is Nothing Then ActiveSheet.PageSetup.PrintArea = plage.Address

 ' Location of DataValidation cell
    Set r = Worksheets("BULLETIN").Range("H5")
    ' Get DataValidation values
    Set inputRange = Evaluate(r.Validation.Formula1)

        Application.ScreenUpdating = False

    For Each c In inputRange
        If first = "" Then first = c.Value
        If c <> "" Then
            r.Value = c.Value

    DateH = Format(Date, "dd_mm_yyyy")
    'adaptez le nom de la feuille
    With Worksheets("BULLETIN")
        Fichier = .Range("H6") & " Du " & DateH & ".pdf"
        dossier = ThisWorkbook.Sheets("PARAMETRES").Range("M4").Value 'chemin à modifier dans PARAMETRES

        Chemin = dossier & Fichier
        .ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin, Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False

        End With
 End If

    Next c
    ' réinitialiser
    r = first

    Application.ScreenUpdating = True

End Sub

Bonjour le Forum,

Bonjour Ibou481,

Je me permet de te contacter par ce biais, mais en feuilletant l'onglet "livre de paie" j'ai remarqué les info bulles qui s'affichaient au passage de la souris.

Peux-tu m'expliquer comment tu as fait pour reprendre les données dans les différentes cellules.

J'aurais peut-être besoin de procéder de la même manière. Merci de ton aide.

Ricket77

Bonjour Sequoyah

Vraiment merci beaucoup. le code m'imprimer tous mes bulletins de salaires.

Bonjour newport1905,

j'ai utilisé un tableau croisé dynamique(TCD) pour faire le livre de paie.

Rechercher des sujets similaires à "vba enregistrer feuille format pdf dossier"