Récupération du N° de pages

  • Initiateur de la discussion Monden
  • Date de début
M

Monden

Guest
Bonjour,
Quelqu'un peut-il me dire quelle est le nom du paramètre
ou la fonction qui permet de récuperer le numéro de page
où se trouve, par exemple, la cellule active.
Ce paramètre se met sous la forme '&P' lors de la modification
des en tete ou pied de page.
Merci d'avance
:)
 
M

Monden

Guest
Je desire créer une fonction qui à partir d'une adresse
de cellule renvoi le numéro de page où se trouve cette cellule.
Le numéro de page étant celui qui apparait grisé en arrière plan
lorsque l'on fait un appercu des sauts de pages.
 

MichelXld

XLDnaute Barbatruc
bonsoir Monden , bonsoir abel

tu peux tester

Code:
Sub numeroPage()
Dim i As Byte
Dim HPB As HPageBreak

Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview

For Each HPB In Sheets(1).HPageBreaks
    i = i + 1
    
    If HPB.Location.Row > ActiveCell.Row Then
    MsgBox 'Page ' & i
    ActiveWindow.View = xlNormalView
    Application.ScreenUpdating = True
    Exit Sub
    End If
Next HPB

MsgBox 'Page ' & i + 1
ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True
End Sub


bonne soiree
MichelXld
 

Monden

XLDnaute Nouveau
Merci, c'est très sympa d'avoir fait cette macro.
Cependant elle ne règle qu'en parti mon
problème car elle ne compte que les sauts de page
horizontaux (valable donc si les pages sont l'une en dessous de l'autre) hors il peut y avoir des pages cote à cote
et l'une en dessous de l'autre. Il faut alors compter
les sauts de page horizontaux et verticaux.
De plus il faut préciser le sens de comptage: la numérotation des pages peut se faire soit de haut en bas puis de droite à gauche
soit de droite à gauche puis de haut en bas.
Ceci risque de compliquer pas mal la macro.
C'est pourquoi si l'on connaissait cette variable - qu'excel connait
puisqu'il le montre quand on fait l'apercu avant impression, ce serait plus facile.
J'espère que mes explications sont claires.
 

MichelXld

XLDnaute Barbatruc
rebonsoir

ci joint une autre version plus élaborée


Code:
Sub numeroPageCelluleActive()

Application.ScreenUpdating = False
ActiveWindow.View = xlPageBreakPreview

MsgBox numeroPage(ActiveCell)

ActiveWindow.View = xlNormalView
Application.ScreenUpdating = True

End Sub


Function numeroPage(Cellule As Range) As Integer

  Dim VPC As Integer, HPC As Integer
  Dim VPB As VPageBreak, HPB As HPageBreak
  Dim Wksht As Worksheet
  Dim Col As Integer, Ligne As Long

  Set Wksht = Cellule.Worksheet
  Ligne = Cellule.Row
  Col = Cellule.Column
  If Wksht.PageSetup.Order = xlDownThenOver Then
    HPC = Wksht.HPageBreaks.Count + 1
    VPC = 1
  Else
    VPC = Wksht.VPageBreaks.Count + 1
    HPC = 1
  End If
  numeroPage = 1
  For Each VPB In Wksht.VPageBreaks
    If VPB.Location.Column > Col Then Exit For
    numeroPage = numeroPage + HPC
  Next VPB
  For Each HPB In Wksht.HPageBreaks
    If HPB.Location.Row > Ligne Then Exit For
    numeroPage = numeroPage + VPC
  Next HPB

End Function


bonne soiree
MichelXld
 

Monden

XLDnaute Nouveau
Bonjour,
Excuse moi pour hier soir j'étais parti dormir.
Pour revenir à ta macro: ça, c'est du travail de pro, rapidité, efficacité; je te remercie.
Cette macro fonctionne bien quand les pages sont bien ordonnées comme dans 'Feuil2' du fichier joint.
Je sais, je suis exigeant, mais si tu essais avec 'Feuil1' ou 'Feuil3' ça ne fonctionne pas.
D'accord dans 'Feuil3' c'est tiré par les cheuveux mais des cas comme 'Feuil1' arrivent assez souvent. [file name=Classeur1_20050304085438.zip size=9376]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/Classeur1_20050304085438.zip[/file]
 

Pièces jointes

  • Classeur1_20050304085438.zip
    9.2 KB · Affichages: 106

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote