Impression pdf de plusieurs zones d'une même feuille en fichier séparés

Bonjour,

Je n'ai pas trouvé la réponse en recherchant sur le forum. Je suis totalement novice en VBA.

J'ai un fichier excel qui recense les heures de travail de mon équipe, j'ai un onglet par mois sur lequel je rentre le planning général sous forme de tableau (liste de mes agents en ligne et jours du mois en colonne) , puis un autre onglet par mois (RecapDEC par exemple pour le mois de décembre) qui me remplit un tableau par agent. L'onglet récap va piocher tout seul dans le gros tableau mensuel et convertit les vacations en durée (les vacations ont des noms différents car correspondent à des horaires différents mais parfois certaines durées en commun). Ça j'ai réussi avec des formules basiques !

Chaque mois je dois faire une impression pdf de la recap de chaque agent (exemple A2 à AF9 sur le fichier joint) sur un fichier séparé, nommé selon l'agent et avec un suffixe commun à tous et qui ne change pas, du type "Agent A NomDeLEntreprise".

J'ai un bon nombre d'agents à gérer (le fichier ne donne l'exemple qu'avec 4 agents) et j'aimerais savoir s'il est possible de créer un bouton qui générerait automatiquement ces impressions pdf ?

Je découvre petit à petit les différentes fonction mais je suis curieuse d'apprendre.

Merci d'avance pour votre aide.

26recap.zip (13.67 Ko)

Bonjour,

à tester,

si tout les rapports sont de même dimension (8 lignes, 32 colonnes)

Sub Enregistre_PDF()
Dim sh As Worksheet, lig As Long, i As Long, chemin As String, fichier As String
Set sh = Sheets("recapDec")
chemin = ThisWorkbook.Path & "\"
lig = sh.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lig Step 9
  fichier = chemin & sh.Cells(i, 6) & " - NomDeLEntreprise" & ".pdf"
  With sh
    .PageSetup.PrintArea = "$A$" & i & ":$AF$" & i + 7
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  End With
Next i
End Sub

Bonjour amekiemai, i20100, le forum,

@ Isabelle:

Je m'étais prêté à l'exercice et parvenu à un code pratiquement similaire au tien, mais le fichier pdf généré est sur 2 pages...

Que penses-tu de cet modification ?

J'ai rajouté:....(obtenu à partir de l'enregistreur de macro)...

.PageSetup.Orientation = xlLandscape       'format paysage
 .PageSetup.FirstPageNumber = xlAutomatic      'ajuster la feuille à une page
 

Ce qui donnerait :

Sub Enregistre_PDF()
Dim sh As Worksheet, lig As Long, i As Long, chemin As String, fichier As String
Set sh = Sheets("recapDec")
chemin = ThisWorkbook.Path & "\"
lig = sh.Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To lig Step 9
  fichier = chemin & sh.Cells(i, 6) & " - NomDeLEntreprise" & ".pdf"
  With sh
    .PageSetup.PrintArea = "$A$" & i & ":$AF$" & i + 7
    .PageSetup.Orientation = xlLandscape
    .PageSetup.FirstPageNumber = xlAutomatic
    .ExportAsFixedFormat Type:=xlTypePDF, Filename:=fichier, Quality:=xlQualityStandard _
        , IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  End With
Next i
End Sub

est-ce correct ?

Amitiés,

Bonjour

Un énorme merci pour ces réponses. Cela fonctionne à merveille ! J'ai pu l'intégrer dans mon fichier.

Rechercher des sujets similaires à "impression pdf zones meme feuille fichier separes"