XL 2019 Impression automatique en vba

  • Initiateur de la discussion Initiateur de la discussion michelf
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

michelf

XLDnaute Junior
Bonjour, je suis en phase finale de la création d'un bulletin scolaire.
J'ai une macro qui me permet de les générer tous en format pdf.
Je voudrais, à la place (ou en plus) pouvoir les imprimer tous... Je pensais utiliser .printout mais je ne sais pas comment l'intégrer dans (ou en +) de la macro ci-dessous.
Quelqu'un peut-il m'aider, merci d'avance


Sub ImpressionDesBulletins()
Dim c As Range
For Each c In Worksheets("Elèves").Range("A3:A24")
Worksheets("Bull").Cells(1, 8).Value = c.Value
' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=
Worksheets("Bull").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Temp\" & c.Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

Next

End Sub
 
Bonjour, je suis en phase finale de la création d'un bulletin scolaire.
J'ai une macro qui me permet de les générer tous en format pdf.
Je voudrais, à la place (ou en plus) pouvoir les imprimer tous... Je pensais utiliser .printout mais je ne sais pas comment l'intégrer dans (ou en +) de la macro ci-dessous.
Quelqu'un peut-il m'aider, merci d'avance


Sub ImpressionDesBulletins()
Dim c As Range
For Each c In Worksheets("Elèves").Range("A3:A24")
Worksheets("Bull").Cells(1, 8).Value = c.Value
' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=
Worksheets("Bull").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Temp\" & c.Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False

Next

End Sub
Hello,

Pourquoi transformer en PDF pour après l'imprimer, est-ce pas mieux d'imprimer le fichier Excel et si tu en as besoin, le transformer en fichier PDF ?
 
je vais essayer, je dois "supprimer" la partie "pdf" alors ?? ou ajouter cette commande quelque part ??
Cela dépend si tu as besoin du PDF. Si tu veux garder la transformation PDF, tu peux placer ce code au dessus du reste. Si tu ne veux pas du PDF tu remplace le code.

Voici le code pour imprimer le fichier entier :

VB:
ActiveWorkbook.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False

Et si tu veux imprimer par exemple que les 20 premières pages :

Code:
ActiveWorkbook.PrintOut From:=1, To:=20 Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
 
De rien. Et si tu veux optimiser l'impression tu peux faire

VB:
Sub imprimer()

NBcopies = [B1]
Page_départ = [B2]
Page_fin = [B3]

ActiveWorkbook.PrintOut From:= Page_départ, To:= Page_fin Copies:= NBcopies, Collate:=True, _
        IgnorePrintAreas:=False

End Sub

Comme ça tu précise dans la cellule B1 le nombres de copies, en B2 page de début et B3 page de fin.
Mais si tu veux vraiment tout imprimer tu peux simplement faire :

VB:
NBcopies = [B1]

ActiveWorkbook.PrintOut Copies:= Nbcopies, Collate:=True, _
        IgnorePrintAreas:=False

Cordialement
 
Salut
Je reviens sur cette macro qui marche très bien après les améliorations qui m'ont été proposées.
Je voudrais cependant encore l'améliorer; en effet chaque année en fonction du nombre d'élèves je dois aller modifier ma macro dans la ligne : "For Each c In Worksheets("Elèves").Range("A3:A24")"
Il me semble qu'il est possible de "dire" à ma boucle de s'arrêter quand elle trouve une ligne vide. Hélas je ne sais pas comment l'écrire.
La liste des élèves se trouve donc dans l'onglet "Elèves" sur 3 colonnes 1) la référence 2) le prénom 3) le nom

Re voici ma macro actuelle
Merci d'avance

Sub ImpressionDesBulletins()
Dim c As Range
For Each c In Worksheets("Elèves").Range("A3:A24")
Worksheets("Bull").Cells(1, 8).Value = c.Value
' ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=
Worksheets("Bull").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Temp\" & c.Value & ".pdf" _
, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=False
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
245
Réponses
3
Affichages
887
Réponses
10
Affichages
547
Réponses
3
Affichages
672
Retour