Feuille Excel en Page PDF sur toute la largeur
winflow
Messages postés
179
Statut
Membre
-
Zoul67 Messages postés 2001 Statut Membre -
Zoul67 Messages postés 2001 Statut Membre -
Bonjour,
J'ai une fonction qui permet de redimensionner une feuille Excel pour qu'elle tienne sur une page A4 en PDF. Seulement la feuille ne fait pas toute la largeur de la page ... Voici mon code :
Merci d'avance,
--
Cordialement
Winflow
J'ai une fonction qui permet de redimensionner une feuille Excel pour qu'elle tienne sur une page A4 en PDF. Seulement la feuille ne fait pas toute la largeur de la page ... Voici mon code :
'Fonction qui redimensionne les annexes de type A. Bat
Sub feuille_page(n As String)
Workbooks(workb).Activate
'Redimensionnement automatique des colonnes
Sheets(n).Columns.AutoFit
Sheets(n).Columns(6).ColumnWidth = 3
Dim last_row As Integer
Dim i As Integer
Dim temp As Boolean
temp = False
'Extrait de code enlevé car confidentiel
[...]
'Paramètrage de la feuille
With Sheets(n).PageSetup
'Format A4
'.PaperSize = xlPaperA4
.Zoom = False
'Tient sur une feuille en hauteur
.FitToPagesTall = 1
'Tient sur une feuille en largeur
.FitToPagesWide = 1
'Aire d'impression
.PrintArea = "A1:I" & last_row
'Pas de marges
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0)
.BottomMargin = Application.InchesToPoints(0)
.HeaderMargin = Application.InchesToPoints(0)
.FooterMargin = Application.InchesToPoints(0)
End With
End Sub
Merci d'avance,
--
Cordialement
Winflow
1 réponse
-
Bonjour,
Normal, tu as indiqué dans ton (?) code que ça doit tenir sur une page.
Si ton document est beaucoup plus haut que large, toute la largeur ne sera pas utilisée.
A+-
-
-
-
Donc il faut que tu appliques un coefficient multiplicatif à la largeur de tes colonnes :
For i=1to 9
Sheets(n).Columns(i).Width=Int(Sheets(n).Columns(i).Width*coeff
Next i
Au préalable tu dois calculer le coeff en fonction de la somme des hauteurs des lignes et celle de la largeur des colonnes :hauteur_page = 0
largeur_page = 0
For l=1 to lastrow
hauteur_page = hauteur_page + Sheets(n).Rows(l).Height
Next l
For c=1 to 9
largeur_page = largeur_page + Sheets(n).Column(c).Width
Next l
If largeur_page/hauteur_page < 21/29.7 Then
coeff=(hauteur_page * 21) / (largeur_page * 29.7) -
-