[Résolu] Impression sous VBA, ajustement à la page
Bonjour à tous,
J’ai développer un outil qui crée des tableaux de taille très variable, le tableau généré peut aussi bien être de 3 colonnes et 3 lignes que de 20 colonnes et 30 lignes.
J’ai trouvé comment forcer l’affichage sur 1 page pour l’impression des grands tableaux, mais pour les tableaux de plus petite taille je ne vois pas comment augmenter la taille. L’objectif étant que l’impression prenne le maximum de place sur la feuille (les petits tableaux se retrouvent en plein milieu avec des marges de 10cm autour).
Merci d'avance,
Eclpise
Résolu, j'ai trouvé la solution avec .HPageBreaks.Count et .VPageBreaks.Count
Bonjour à tous,
J’ai développer un outil qui crée des tableaux de taille très variable, le tableau généré peut aussi bien être de 3 colonnes et 3 lignes que de 20 colonnes et 30 lignes.
J’ai trouvé comment forcer l’affichage sur 1 page pour l’impression des grands tableaux, mais pour les tableaux de plus petite taille je ne vois pas comment augmenter la taille. L’objectif étant que l’impression prenne le maximum de place sur la feuille (les petits tableaux se retrouvent en plein milieu avec des marges de 10cm autour).
Code:
‘redim la zone d’impression en fonction du nombre de ligne et de colonnes et imprime la feuille
Sub Imprimer(feuille, nbPer, nbPrd)
On Error Resume Next 'evite une erreur d'absence d'imprimante
If Application.Dialogs(xlDialogPrinterSetup).Show = False Then Exit Sub
On Error GoTo 0
Application.ScreenUpdating = False
With Sheets(feuille)
With .PageSetup
.Orientation = xlLandscape 'paysage
.CenterHorizontally = True 'centré horizontalement
.CenterVertically = True 'centré verticalement
.PrintArea = Cells(6, 1).Address & ":" & Cells(nbPer, nbPrd).Address 'zone d'impression
.LeftMargin = Application.InchesToPoints(0) 'marge gauche
.RightMargin = Application.InchesToPoints(0) 'marge droite
.TopMargin = Application.InchesToPoints(0) 'marge haut
.BottomMargin = Application.InchesToPoints(0) 'marge bas
.Zoom = False 'pas de zoom
.FitToPagesTall = 1 '1 page en hauteur
.FitToPagesWide = 1 '1 page en largeur
End With
.PrintOut 'imprime
End With
Application.ScreenUpdating = True
End Sub
Merci d'avance,
Eclpise
Résolu, j'ai trouvé la solution avec .HPageBreaks.Count et .VPageBreaks.Count
Dernière édition: