IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

VBA - Excel 2013 ; Ajuster la feuille à la page d'impression


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Par défaut VBA - Excel 2013 ; Ajuster la feuille à la page d'impression
    Bonjour,

    Dans une de mes macros, je souhaite faire en sorte que mon document puisse être imprimer en papier ou PDF sur une seule feuille avec un ajustement automatique. Je n'ai aucun soucis pour l'impression mais je fais toujours l'ajustement à la main comme le montre le code exemple suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub Ajuster()
     
        Worksheets("Feuille1").Activate
     
        With ActiveSheet.PageSetup
        .PrintArea = "$A$1:$F$132"
        .PaperSize = xlPaperA4
        .LeftMargin = Application.InchesToPoints(1.25)
        .RightMargin = Application.InchesToPoints(0.5)
        .TopMargin = Application.InchesToPoints(0.45)
        .BottomMargin = Application.InchesToPoints(0.45)
        .Zoom = 55
        .Orientation = xlPortrait
     
        ActiveSheet.PrintPreview
        End With
     
    End Sub
    J'ai pu lire pas mal de solutions et même une sur ce forum mais aucune n'a fonctionne avec mon Excel 2013.
    Pourriez vous m'aider s'il vous plait ?

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    Salut,

    concernant la plage, peut-elle évoluer ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PrintArea = "$A$1:$F$132"
    Sinon tu peux travailler sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    pour limiter à une page en impression

    Amuse toi avec l'enregistreur de macros pour voir si tu as des paraètres d'impression qui pourraient t'intéresser.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Par défaut Ajuster la feuille à la page d'impression
    Bonjours,

    Merci de m'avoir répondu Jean-Philippe.

    Oui la plage est susceptible de varier mais la valeur max est celle indiqué sur mon code de tel sorte que si cette plage max est requise, elle passe sur une feuille A4. Néanmoins il est possible d'avoir une plage plus petite auquel cas je souhaiterai zoomer automatiquement et en proportion des marges droites et gauche du format A4.

    oui j'ai essayé ces deux lignes de code mais cela ne change pas la taille du zoom et des marge si le document est plus petit en plage de cellules :-/

    D'accords j'essaye l'enregistreur de macro et je te tiens informé demain matin.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par ThéoRasDesPâquerette Voir le message
    Oui la plage est susceptible de varier mais la valeur max est celle indiqué sur mon code de tel sorte que si cette plage max est requise, elle passe sur une feuille A4. Néanmoins il est possible d'avoir une plage plus petite auquel cas je souhaiterai zoomer automatiquement et en proportion des marges droites et gauche du format A4.
    Il faudrait que tu fasses une copie d'écran de ton onglet pour qu'on puisse voir à quoi se raccrocher pour déterminer la zone à imprimer.

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    re

    bonjour
    la difference de largeur et hauteur est trop grande pour une restitution lisible dans une impression ajusté a une seule page

    ajuste pluto au minimum a 1 page en largeur et 3 ou 4 en hauteur et inversement en mode paysage (landscape)
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mars 2018
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Mars 2018
    Messages : 11
    Par défaut Re
    Bonjour,

    L'enregistreur de macro (que je ne connaissais pas) est fabuleux. Mais en l'utilisant, je me suis aperçus qu'en effet mon opération désiré est impossible de cette manière car lorsque l'on fait la manipulation à la main de :
    > Sélectionner plage de A1 à F132 > Fichier > Imprimer > Ajuster marge : droite, gauche, haut, bas > PDF ; On s'aperçois que l'enregistreur de marco écrit les marges brute du document_V1. Donc si je relance cette nouvelle macro sur un même document_V2 avec une plage de cellules plus courte, le document_V2 sera imprimer avec les marges du document_V1.

    La solution est donc d'écrire un code avec des marges (A, B, C, D) comme variables proportionnelles à la sélection de la plage de cellule (de A1 à F{x}). Pour cela il faut au préalablement étalonner mon document plage par plage avant d'en faire un tableau de marges A, B, C, D correspondantes à leurs plages respectives A1:{Fx}. C'est un travail long et fastidieux mais très intéressant pour faire de l'ajustement automatique sur un document particulier.

    Tu avais raison patricktoulon de souligner le fait que la plage est trop grande pour une seule feuille lisible. Cependant, j'ai réglé le problème avec une découpe en deux feuilles et en plus c'est beaucoup plus lisible et le cahier des charge ne m'impose pas une seule feuille donc c'est parfait.

    Je compte néanmoins travaillé sur ma solution car elle pourrais être très utile ultérieurement.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VBA Excel] macro création de feuille
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 29/06/2006, 11h13
  2. [VBA Excel 2002] Nombre de feuilles maximum
    Par Viper7 dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 27/06/2006, 13h26
  3. [VBA][excel]comment copier la feuille selectionnée
    Par megapacman dans le forum Access
    Réponses: 2
    Dernier message: 21/03/2006, 13h03
  4. [VBA Excel] Remettre toute une feuille par défaut
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/12/2005, 16h56
  5. [VBA Excel] Effacer rapidement une feuille
    Par Invité dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/10/2002, 13h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo