VBA mise en page pour impression

Résolu
Nico -  
pijaku Messages postés 12263 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

A voir également:

2 réponses

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Salut Michel,
Décidément tu es toujours le plus prompt...
Bonne journée
0
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
Sisi!
Suffit d'adapter le Range.
En exemple :
Range("B1:D5,B7:D11,B13:D17,B19:D23").Borders.Weight = xlThin
0