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 :

mise en page et impression VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut mise en page et impression VBA
    BOnjour,

    A partie d'un code VBA je genere des tableaux sur plusieures années que je souhaite imprimer mais j'ai des soucis.
    je n'arrive pas à imprimer sur une autre page chaque année et mes tableaux se trouve coupés sur 2 pages alors que je souhaiterais aller à la page suivant si la tableau ne rentre pas dans la page précédente.
    je pense ca doit etre de la mise en page avant impression mais je n'arrive pas a le faire
    merci de votre.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Je ne comprends pas ceci, car pour moi, cela veut dire la même chose
    mes tableaux se trouve coupés sur 2 pages alors que je souhaiterais aller à la page suivant si la tableau ne rentre pas dans la page précédente
    Si tu vas à la page suivante lorsque le tableau ne tient pas en une page, tu as un tableau coupé sur deux pages, non?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    oui c'est ca mon tableau est coupé sur 2pages alors que je veux qu'il tienne sur une page.
    merci de votre aide

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Je ne sais pas si la largeur/hauteur de ton tableau est modifiée avant impression.

    Si elle n'est pas modifiée, je te conseille plutôt de passer par la mise en page avant impression, sans VBA. Dans Mise en page/Page, tu as la possibilité d'ajuster le zoom sur x pages en largeur et y pages en hauteur. Tu peux renseigner une seule des deux valeurs ou les deux, selon ton souhait.

    Si tu dois passer par vba, tu peux utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ActiveSheet.PageSetup.FitToPagesWide= x ' Largeur
    ActiveSheet.PageSetup.FitToPagesTall= y ' Hauteur
    Si tu ne souhaites renseigner qu'une des deux valeurs, tu passes FALSE à la valeur que tu ne souhaites pas renseigner
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    votre technique marche sur ma feuille excel ou y aun tableau et je vous en remercie
    cependant, sur une autre feuille excel ou j'ai une vingtaine de tableau
    cela marche pas tres bien , j'ai toujours des tableaux sur 2pages a moins d'ajuster la feuille jusqua ce que tout soit illisible mais ce n'est pas la solution.

    savez vous dans ce cas la comment faire les ajustement automatiquement pour tous les tableaux?
    mercide votre aide

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Dans ce cas, la seule solution que j'entrevois est de définir la zone d'impression tableau par tableau, et d'imprimer à chaque fois la zone avec les paramètres dont j'ai parlé dans mon précédent message.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil1.PageSetup.PrintArea= "A1:d10"
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    donc si je comprend faut definir les zones pour chaque tableau, c'est bien cela?
    mais en faisant comme cela , j'obtiens un tableau par page meme si le tableau fait 5 lignes (alors que j'aurai aimé avoir plusieurs tableau par pages si ils ne sont pas coupée)ou est -ce que je me suis trompé dans la manip?
    merci

  8. #8
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    473
    Détails du profil
    Informations personnelles :
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2007
    Messages : 473
    Par défaut
    Je pense qu'il faut insérer des saut de page!!

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Tu dois évidemment adapter ma solution à ton cas...

    Si tu veux faire tenir deux tableaux qui se suivent sur une page, pas de soucis, c'est à voir au cas par cas.

    Tu ne peux pas le faire en insérant des sauts de page, comme suggéré dans la discussion, car tu ne pourras alors pas contrôler qu'un tableau trop large tienne dans une seule page.

    Donc, si j'ai bien compris et que tu veux, par zone imprimable, déterminer sur combien de pages en largeur et en hauteur la zone doit tenir, tu dois adopter la démarche conceptuelle suivante:
    Définir les zones que tu veux imprimer et voir comment elles se découpent
    Boucler sur les zones, et par zone:
    La définir comme zone d'impression
    Définir les paramètres d'impression
    Imprimer

    puis passer à la zone suivante.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    donc il faut que je selectionne manuel les tableaux que je souhaite mettre sur une meme page puis je les definis comme zone d'impression tout en selections les parametres souhaites
    puis je repete cette operation pour chaque page d"impression
    est-ce bien cela?

  11. #11
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Pas forcément à la main
    Si les tableau sont nommés :
    • Excel 2007 - Mise en forme automatique de tableau
    • Excel 2003 - Les listes
    • Toutes versions - Champs nommées auto extensible (sans VBA)
    • Toutes versions - une cellules nommée et usage en VBA de "CurrentArray" ou "CurrentRegion"


    une boucle sur les tableaux nommés avec les méthodes citées plus haut pour la mise en page.

    ESVBA

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 251
    Par défaut
    que voulez-dire par "tableau nommés"?
    eest-ce " donner un nom a un tableau"? si c'est le cas, comment le fait-on?
    par "liste" entendez-vous une liste déroulante avec les noms des tableaux?

    merci

  13. #13
    Membre émérite
    Inscrit en
    Décembre 2006
    Messages
    897
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 897
    Par défaut Une discussion oubliée..
    Désolé, je reviens sur la discussion sans avoir la solution en main : tout dépendant de la taille des tableaux comme dit plus haut.

    Mais sous 2007, par exemple, dans l'onglet Accueil > Style > Mise en forme des tableaux, on arrive à nommer une zone de la feuille qui portera le nom d'un tableau.

    Ce tableau, dont l'avantage est d'être autoextensible sous 2007 et 2003 (défini comme "liste" sous 2003) peut être sélectionné :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Range("Tableau1[#All]").Select
    Une boucle sur tous les tableaux du classeur avec impression du tableau sélectionné sur une page ou deux ou... (voir paramètres d'impression). En général, le nombre de colonnes est fixe. Sinon, il faut passer par une table définissant les caractéristiques de l'impression pour un tableau. Exemple :
    Tableau 1 = 2 pages en largeur, 3 en hauteur,
    Tableau 2 = 1 pages en largeur, 2 en hauteur
    ...

    La même chose avec plus de difficultés car il faut définir les zones des tableaux (définir la ligne d'entête ou la cellule en haut à gauche)...

    Le principe reste le même.

    ESVBA

Discussions similaires

  1. [VBA-E]Mise en page à l'impression
    Par steps5ive dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 10/01/2007, 23h23
  2. Mise en page Excel via VBA Access
    Par popo68 dans le forum VBA Access
    Réponses: 3
    Dernier message: 06/11/2006, 17h03
  3. [vb 2005]Mise en page et impression
    Par estelledany dans le forum Windows Forms
    Réponses: 4
    Dernier message: 25/07/2006, 11h09
  4. [VB6] Mise en page puis impression
    Par pier* dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 09/05/2006, 10h36

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