[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: