Impression d'une page précise par VBA

Bonjour à tout(e)s

Je vous mets mon fichier en attaché pour plus de facilité.

Je voudrais améliorer ma macro « impression »

Pour le moment, elle me permet d’imprimer les bulletins de tous les élèves qui se trouvent dans l’onglet « Elèves » à 2 conditions :

  1. que j’en connaisse le nombre ; dans cet exemple deux : a3 et a4 mais je voudrais qu’elle cherche elle-même combien d’élèves se trouvent dans ma liste (je sais qu’il existe une routine « jusqu’à cellule vide » qui le calcule mais je n’y arrive pas.)
  2. j’ai utilisé la fonction ActiveWindow.SelectedSheets mais ça m’oblige à être sur l’onglet « Bull Virgi » et donc je voudrais que, où que l’on soit sur ce fichier, elle imprime les bulletins générés par (ctrl+i).

D’autre part, j’ai désactivé pour le moment par " ' ", la sauvegarde sur fichier pdf mais je pense que cette routine est correcte…

Sub impression()

Dim c As Range

For Each c In Worksheets("Elèves").Range("A3:A4")

Worksheets("Bull Virgi").Cells(1, 7).Value = c.Value

ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _

IgnorePrintAreas:=False

' ActiveSheet.ExportAsFixedFormat Type:=xlTypepdf, Filename:=

' Worksheets("Bull Virgi").ExportAsFixedFormat Type:=xlTypePDF, Filename:= _

' "D:\Document\Docs Excel\Bulletins de Virgi\" & c.Value & ".pdf" _

' , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _

' :=False, OpenAfterPublish:=False

Next

End Sub

Merci d'avance

Bonjour,

Voici un essai de réorganisation du code :

Sub impression()
dim dl&, i&, sfilename$
with Worksheets("Elèves")
    dl = .Cells(.rows.count , 1).end(xlup).row
    for i = 3 to dl
        sfilename= "D:\Document\Docs Excel\Bulletins de Virgi\" & .cells(i, 1).Value & ".pdf"
        Worksheets("Bull Virgi").Cells(1, 7).Value = .cells(i, 1).Value
        with Worksheets("Bull Virgi")
            .PrintOut Copies:=1, IgnorePrintAreas:=False
            .ExportAsFixedFormat Type:=xlTypePDF, Filename:=sfilename, IgnorePrintAreas:=False
        end with
    Next i
end with
End Sub

Cdlt,

Oh merci beaucoup, c'est exactement ce que j'essayais de faire !! Il me reste à regarder de près comment vous avez traité ça pour avancer encore un peu dans ma connaissance du programme.

J'espère que vous n'avez pas trop été voir mes autres feuilles, c'est du travail d'amateur à côté de vous, mais bon, ça fonctionne c'est le principal

Encore un grand merci

Je vous en prie !

J'ai juste modifié activesheet et activewindow.selectedsheets par worksheets("Bull Virgi") puis j'ai factorisé les lignes en inscrivant des bloc with permettant de cibler l'objet sur lequel on travaille.

Bonne continuation !

Cdlt,

Très heureux d'apprendre encore à mon âge

En tout cas c 'est parfait, je viens de tester chez ma fille !

Merci encore

Rechercher des sujets similaires à "impression page precise vba"