[VBA Excel] Trouver la derniere ligne de la derniere page imprimée

Trouver la derniere ligne de la derniere page imprimée [VBA Excel] - VB/VBA/VBS - Programmation

Marsh Posté le 10-12-2004 à 12:11:21    

Tout dabord Bonjours tous.
Je suis nouveau ici mais j'espère que vous accepterez de m'aider.
 
Voici l'objet de ma requete   :D :
 
Je réalise une macro de mise en page de devis.
A la fin de mon devis, j'ai 3 lignes donnant le total, que j'aimerais placée au bas de la derniere page de mon devis.
 
Ce que je cherche donc c'est comment localiser la derniere cellule de la derniere page de mon document, celle qui se trouve juste au dessus de pointillets indiquant les pages.
 
Pour l'instant, j'ai bidoullé quelque chose en comparant le nombre de page puis en insérant une ligne, et cela en boucle ... Malheureusement, cette soltution est d'une part, peu élégante (mais ca a la limite je peux m'y faire) et surtout TRES lente !
 
voici "la bidouille que j'utilise actuellement" et que j'aimerais remplacer/accélérer/ bruler/noyer / (heu je m'égare la ....)  :D :
 
 'ajuster taille de la derniere pages
 
    Cells.Find(What:="MONTANT TOTAL T.T.C. (EUR)", After:=ActiveCell, LookIn _
        :=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
        xlNext, MatchCase:=False, SearchFormat:=False).Activate
           
    i = ActiveCell.Row
                 
    Dim nb_pages
     
    nb_pages = ActiveSheet.HPageBreaks.Count
     
    Cells(i - 3, 1).Select
    Selection.EntireRow.Insert
     
    Do While ActiveSheet.HPageBreaks.Count = nb_pages
        Selection.EntireRow.Insert
    Loop
 
J'espere avoir été assez clair dans mes explications, et merci davance à ceux qui auront la gentillesse de me répondre  :ange: .
 
SAham2  :bounce:  :bounce:  :bounce:


Message édité par saham2 le 10-12-2004 à 13:39:53
Reply

Marsh Posté le 10-12-2004 à 12:11:21   

Reply

Marsh Posté le 10-12-2004 à 12:27:53    

tu peut toujours essayer de recuperer la zone d'impression par :
 
ActiveSheet.PageSetup.PrintArea

Reply

Marsh Posté le 10-12-2004 à 13:38:44    

gargamail a écrit :

tu peut toujours essayer de recuperer la zone d'impression par :
 
ActiveSheet.PageSetup.PrintArea


 
C'est une piste effectivement mais je vois pas comment l'exploiter : Print area sert à affecter ou a renvoyer la plage d'impression défini manuellement non ?
 
Or je n'ai pas de zone d'impression défini manuellement. Dans mon cas, c'est la zone d'impression "automatique" qui m'interresse.
 
Dans tous les cas, Merci pour ta réponse.
 
Je suis sur qu'il y a un moyen ultra simple de trouver cette satanée cellule ... mais comme toujours, plus c'est simple, plus c'est dur a trouver ^^
 :lol:  :lol:  :lol:

Reply

Marsh Posté le 10-12-2004 à 14:07:41    

En effet :)
 
 
HPageBreaks.Item(1).Location.Cells.Row - 1
 
 
ce code te renveras la dérniére ligne de la premiére page imprimée ( item(1)  et row-1 )
 
HPageBreaks.Item(1).Location.Cells.Address
 
te donneras la premiére cellule de la deuxiéme page à imprimer


Message édité par Profil supprimé le 10-12-2004 à 14:08:46
Reply

Marsh Posté le 10-12-2004 à 14:25:41    

gargamail a écrit :

En effet :)
 
 
HPageBreaks.Item(1).Location.Cells.Row - 1
 
 
ce code te renveras la dérniére ligne de la premiére page imprimée ( item(1)  et row-1 )
 
HPageBreaks.Item(1).Location.Cells.Address
 
te donneras la premiére cellule de la deuxiéme page à imprimer


 
Encore une fois merci pour ta réponse.
 
Je vais regarder tes info de plus près mais j'ai peur de ne pas pouvoir atteindre la derniere ligne de la derniere page imprimé avec les Hpage breaks :
C'est derniere s'arrete par définition a l'avant derniere page, ou plus exactement, entre l'avant derniere et la derniere ...
 
Et les shadock marchèrent et marchèrent et mar ....  :pt1cable:  

Reply

Marsh Posté le 11-12-2004 à 12:13:45    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed