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 :

Rendre un graphique "insécable" à l'impression [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 16
    Par défaut Rendre un graphique "insécable" à l'impression
    Bonjour.
    Dans un onglet, je remplis un tableau dynamiquement. Il peut donc prendre jusqu'à plusieurs pages.
    J'ai un graphique juste en dessous.
    Connaissez-vous un moyen de m'assurer que ce graphique n'apparaisse pas à cheval sur deux pages à l'impression? Mis à part le mettre toujours sur une autre page, ce qui n'est pas l'effet désiré.

    Merci d'avance.
    Cdlt.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Je vois un problème en particulier à ta demande. Si le graphique est plus grand qu'une feuille, que doit-il se passer ?

    Pour cela, je pense qu'il faudrait connaître la position, de préférence selon les lignes, du début et de la fin du graphique. Je ne sais pas si c'est faisable. Si ça l'est, il faut comparer ça avec les sauts de pages existants pour faire un saut de page dans les cas correspondants.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 16
    Par défaut
    Merci de ta réponse.
    Le graphique est de taille constante et inférieur à la taille d'une page. Je pensais qu'il pourrait y avoir une notion de "paragraphe insécable" cachée quelque part mais je ne pense pas qu'il y ait cette option, ou en tout cas je ne l'ai pas trouvé.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Re, j'ai peut-être une solution sous la main !

    D'abord tu fais un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    temp = ActiveSheet.HPageBreaks.Item(ActiveSheet.HPageBreaks.count).Location.Address
    puis tu enchaînes sur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.ChartObjects(1).Left = Range(temp).Left
    ActiveSheet.ChartObjects(1).Top = Range(temp).Top ' Le 1 correspond à l'objet graphique en question : il faudra changer ça en fonction des différents graphiques
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    With ActiveSheet.Shapes("NomDeTonGraphique")
            .Left = Range(temp).Left
            .Top = Range(temp).Top
    End With
    Tu testes pour moi ?

  5. #5
    Membre averti
    Inscrit en
    Décembre 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 16
    Par défaut
    Impeccable j'affine avec quelques tests pour le positionner plus précisément.

    Juste pour chipoter, on ne peut pas récupérer l'adresse de ActiveSheet.HPageBreaks.Count parce que ce saut de page est créé même si non utilisé. Il faut donc se baser sur l'avant dernier.

    Merci pour ton aide.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Content d'avoir pu t'aider

    Et merci pour la petite précision

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

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