VBA mise en page pour impression [Résolu/Fermé]

Signaler
-
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
-
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

Messages postés
16011
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
12 décembre 2019
2838
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 ?
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2250
Salut Michel,
Décidément tu es toujours le plus prompt...
Bonne journée
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2250
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
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
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2250
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 ?
ç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.
pijaku
Messages postés
12254
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
10 décembre 2019
2250
Sisi!
Suffit d'adapter le Range.
En exemple :
Range("B1:D5,B7:D11,B13:D17,B19:D23").Borders.Weight = xlThin