XL 2013 Automatisme pour remplir des TABs

Sigmund173

XLDnaute Occasionnel
hahahahaha j'ai essayé mais à mon avis j'ai pas mis le code à la bonne place .... pffff :p:rolleyes:
 

Dranreb

XLDnaute Barbatruc
Au début :
VB:
Sub TransfertY()
   Const HEncadréFin = 9, NbLpP = 65 ' À vérifier sur la page 2 d'un pdf renseigné sur au moins 3 pages.
Après le WshExclPDF.ResetAllPageBreaks :
Code:
   If (WshExclPDF.Range(WshExclPDF.PageSetup.PrintTitleRows).Row _
      - WshExclPDF.Range(WshExclPDF.PageSetup.PrintArea).Row + LR) Mod NbLpP _
      > NbLpP - HEncadréFin Then WshExclPDF.HPageBreaks.Add Before:=LOt.HeaderRowRange.Offset(LR + 1)
 
Dernière édition:

Sigmund173

XLDnaute Occasionnel
impressionnant et je n'aurais pas trouvé ou le mettre, par contre sur mon document 5 pages, la 5ème contient 7 lignes et ensuite il me met une nouvelle page avec l'encadrement et la signature
J'ai aussi essayé de change If LR > 40 à If LR > 55 mais pareil

VB:
  WshExclPDF.ResetAllPageBreaks
   If (WshExclPDF.Range(WshExclPDF.PageSetup.PrintTitleRows).Row _
      - WshExclPDF.Range(WshExclPDF.PageSetup.PrintArea).Row + LR) Mod NbLpP _
      > NbLpP - HEncadréFin Then WshExclPDF.HPageBreaks.Add Before:=LOt.HeaderRowRange.Offset(LR + 1)
   If LR > 55 Then WshExclPDF.HPageBreaks.Add Before:=LOt.HeaderRowRange.Offset(LR + 1)
 
Dernière édition:

Sigmund173

XLDnaute Occasionnel
Si j'enlève cette ligne ça fonctionne If LR > 55 Then WshExclPDF.HPageBreaks.Add Before:=LOt.HeaderRowRange.Offset(LR + 1) par contre ça arrive que du coup l'encadrement soit coupé
 

Dranreb

XLDnaute Barbatruc
Mais nom d'une pipe, pourquoi ajoutez vous deux sauts de page au même endroit ???
Un seul suffit, non plus comme auparavant s'il y avait plus de 55 lignes produites, puisque ça ne vous plaisait pas s'il restait encore assez de place sur la dernière page, mais désormais si le reste de la division du nombre de lignes produites, augmenté du nombre de lignes supplémentaires sur la 1ère page avant la ligne d'entêtes, par le nombre de lignes par page est supérieur à ce nombre de lignes par page diminué de la hauteur de l'encadré de fin. S'il arrive que l'encadré soit coupé, recomptez les lignes dans la page 2 d'un pdf ayant des lignes renseignées sur au moins 3 pages (valeur à attribuer à NbLpP), ainsi que la hauteur en lignes de l'encadré de fin (valeur de HEncadréFin).
 
Dernière édition:

Sigmund173

XLDnaute Occasionnel
C'est ce qui me semblait donc je l'avais enlevé, c'était la ligne qui avait été mise avant.
Ce n'est pas que le vide ne me plaisait pas, c'est surtout que l'encadré se trouve tout seul sur une page et non pas à la suite de la liste des exclusions donc à la fin du tableau
 

Sigmund173

XLDnaute Occasionnel
Par contre j'ai beau changer les valeurs ici rien ne se passe, sur un pdf à 5 pages, je me retrouve avec une 6ème et l'encadré tout seul, alors qu'il y a la place dans la page 5 pour y mettre l'encadré (il y a 10 lignes dans la page 5)

VB:
Sub TransfertY()
   Const HEncadréFin = 9, NbLpP = 65
Code:
Sub TransfertY()
   Const HEncadréFin = 9, NbLpP = 55
 

Dranreb

XLDnaute Barbatruc
Ne les changez pas au pif. Comptez le nombre de lignes exact dans une page de pdf où il n'y que des lignes du tableau renseignées à l'exclusion de tout début spécial ou encadré.
Je me suis peut être trompé sur la valeur de HEncadréFin, ce serait plus proche de 17 que de 9. Remarquez: HEncadréFin pourrait être une variable calculée au lieu d'une constante: c'est le numéro de ligne de la dernière ligne de la zone d'impression moins le numéro de ligne de la dernière ligne du tableau. vérifiez aussi si je ne me suis pas trompé dans la formule, réfléchissez à ce qu'elle doit faire et corrigez là, pour qu'elle signifie bien "s'il reste moins de lignes sur la dernière page que la hauteur de l'encadré de fin". Le nombre de lignes restant c'est le nombre de lignes par page - le nombre de lignes utilisé sur la dernière page, ce dernier étant le reste de la division du nombre total par le nombre de lignes par page (Début + LR) Mod NbLpP, Début étant les nombre de lignes supplémentaire au début si la zone d'impression commence avant la ligne répétée sur chaque page. Moi je n'y réfléchis plus, j'en ai marre, ce n'est pas pour rien que je m'étais borné à ajouter un saut de page au delà d'un certain nombre de lignes pour ne pas risquer que l'encadré soit coupé, c'est parce que je savais que ce serait compliqué de faire mieux.
 
Dernière édition:

Sigmund173

XLDnaute Occasionnel
J'ai modifié la taille des marges dans les mises en pages et ça à l'air de fonctionner
Encore merci pour le coup de main et la patience
 

Discussions similaires


Haut Bas