VBA mise en page pour impression

Résolu
Nico -  
pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Voici mon fichier
http://www.cijoint.fr/cjlink.php?file=cj201109/cijGVXAF83.xls
je sais pas ce que vous pensez de mon code, si vous avez moyen de l'améliorer je ne suis pas contre :-)

ma question porte sur la mise en page. comment faire pour que les petits tableaux ne soient jamais coupés sur 2 pages lors de l'impression ?

Merci d'avance

2 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    pour l'instant tu parles de petits tableaux et moi je n'en vois qu'un

    pour encadrer
    par ex:
    Range("A1:C46").borders.weight=xlthin


    et pourquoi ne fais tu pas ces encadrements en 1 seule fois ?
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut Michel,
      Décidément tu es toujours le plus prompt...
      Bonne journée
      0
  2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    Bonjour,
    je sais pas ce que vous pensez de mon code, si vous avez moyen de l'améliorer je ne suis pas contre
    Il fonctionne?
    N'est pas lent?
    ===> Pourquoi le changer...

    comment faire pour que les petits tableaux ne soient jamais coupés sur 2 pages lors de l'impression ? Dans ton cas, je ferais une boucle et imprimerais par "sélection" de 5 tableaux (soit 30 lignes).
    Du style :
    Dim Lign As Integer, DrLign As Integer
    'la dernière ligne à imprimer correspond mathématiquement à :
    'arrondi supérieur de : (nombre de lignes total/30) * 30 soit en VBA :
    DrLign = Round(Range("B" & Rows.Count).End(xlUp).Row / 30 + 0.5) * 30
    For Lign = 1 To DrLign Step 30
        Range("A" & Lign & ":E" & Lign + 29).PrintOut
    Next
    --
    Cordialement,
    Franck P
    0
    1. Nico
       
      merci de vosu intéresser à mon sujet.
      la macro prend 1s, j'étais simplement curieux de voir comment il aurait pu être écrit.
      J'essaie ton code et reviens te dire.

      Michel, au départ j'ai la liste sur les 3 colonnes et si tu lances la macro, tu obtiens des dizaines de petits tableaux. c'est là que j'ai besoin que ces petits tableaux ne soient pas coupés
      0
    2. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      j'étais simplement curieux de voir comment il aurait pu être écrit

      Alors déjà, commence par appliquer ce que Michel t'as donné comme indication :

      pour encadrer
      par ex:
      Range("A1:C46").borders.weight=xlthin
      et pourquoi ne fais tu pas ces encadrements en 1 seule fois ?
      0
    3. Nico
       
      ça ne va pas me donner le même résultat car la bordure sera apaprente sur la ligne qui doit être vierge entre les petits tableaux.
      0
    4. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Sisi!
      Suffit d'adapter le Range.
      En exemple :
      Range("B1:D5,B7:D11,B13:D17,B19:D23").Borders.Weight = xlThin
      0