Impression automatique d'un tableau excel avec choix de l'imprimante

Contenu du snippet

Bonjour à tous, je dépose aujourd'hui ma première source. Elle semblera peut-être très simple pour certains, mais j'ai bien galéré pour la réaliser quand même donc si ça peut aider!
Ce bout de code permet d'imprimer un tableau automatiquement en ajustant la taille aux lignes remplies, il permet également de choisir l'imprimante à utiliser pour cette impression.

Source / Exemple :


Public Sub imprime()
Dim i As Integer
Dim j As Integer

'Choix de l'imprimante
Application.Dialogs(xlDialogPrinterSetup).Show

'Initialisation des variabales (i=9 pour début impression à la ligne 9)
i = 9
j = 0

'Test cellule vide dans la colonne 2, dernière ligne remplie dans j
While ActiveSheet.Cells(i, 2) <> ""
i = i + 1
j = i - 1
Wend
    
'Définition de la zone d'impression nombre de lignes:j nombre de colonnes:13
ActiveSheet.PageSetup.PrintArea = Range(Cells(1, 1), Cells(j, 13)).Address
    ActiveWindow.SmallScroll Down:=-18
'Impression des lignes 1 à 8 en tête de chaque page
    With ActiveSheet.PageSetup
        .PrintTitleRows = "$1:$8"
        .PrintTitleColumns = ""
    End With
    With ActiveSheet.PageSetup
'Afichage du nombre de pages en en-tête
        .CenterFooter = "&""Arial,Gras""&12Page &P/&N"
        .LeftMargin = Application.InchesToPoints(0.393700787401575)
        .RightMargin = Application.InchesToPoints(0.393700787401575)
        .TopMargin = Application.InchesToPoints(0.393700787401575)
        .BottomMargin = Application.InchesToPoints(0.393700787401575)
        .HeaderMargin = Application.InchesToPoints(0.511811023622047)
        .FooterMargin = Application.InchesToPoints(0.31496062992126)
        .CenterHorizontally = True
        .CenterVertically = False
        .Orientation = xlLandscape
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
'affiche le tableau sur une page en largeur.. défini manuellement par test
        .Zoom = 49
        .PrintErrors = xlPrintErrorsDisplayed
    End With
'Impression
ActiveSheet.PrintOut
'Positionnement sur la cellule A9
Range("A9").Select

End Sub

Conclusion :


J'attends la critique avec un peu d'impatience pour savoir ce que j'aurais pu améliorer là-dedans.
Merci d'avance

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.