Feuille Excel en Page PDF sur toute la largeur

Fermé
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 - 24 févr. 2014 à 13:21
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 - 24 févr. 2014 à 16:02
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 :

'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,


A voir également:

1 réponse

Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 févr. 2014 à 13:28
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+
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
24 févr. 2014 à 13:39
Oui mais j'aimerais que la feuille tienne sur toute la largeur
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
24 févr. 2014 à 13:44
Ce n'est pas un problème VBA mais un problème de mise en page Excel. Tu veux élargir les colonnes pour que ça continue de tenir sur une page ? Ou tu veux couvrir toute la largeur en imprimant sur plusieurs pages si nécessaire ?
0
winflow Messages postés 156 Date d'inscription mercredi 7 avril 2010 Statut Membre Dernière intervention 17 mars 2015 22
24 févr. 2014 à 13:46
Je veux élargir les colonnes de ma feuille pour qu'elles tiennent sur une page A4 en largeur
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par pijaku le 11/03/2014 à 14:37
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)
0
Zoul67 Messages postés 1959 Date d'inscription lundi 3 mai 2010 Statut Membre Dernière intervention 30 janvier 2023 149
Modifié par Zoul67 le 24/02/2014 à 15:18
étrange, je pense que ma dernière réponse a été effacée.
Il faut que tu fasses le rapport de la largeur de tes colonnes sur la hauteur de tes lignes et que tu appliques un coefficient à chaque colonne pour en augmenter la largeur.

Si un modérateur pouvait exhumer ma réponse (lien 5)... merci !
0