Comment trouver le nombre de pages dans des plages nommées?
Le
rm81
Bonjour,
J’ai une feuille d’Excel avec plusieurs pages et des plages nommées; par
exemple "ABC" a deux pages, "DEF" 3 pages etc. Je voudrais pouvoir faire un
petit tableau sur la dernière page de ma feuille résumant le nombre de pages
dans chaque plage :
ABC 2 pages
DEF 3 pages
Total X pages
Seulement, les plages sont variables. J’ai réussi à avoir le total nombre
de pages avec :
Sub TotalNumberOfPages()
With ActiveSheet
.DisplayAutomaticPageBreaks = True
HorizBreaks = ActiveSheet.HPageBreaks.Count
HPages = HorizBreaks + 1
NumPages = HPages
.DisplayAutomaticPageBreaks = False
range("VERIFICATION_DU_DOSSIER").Cells(10, 4).Select
ActiveCell = NumPages
End With
End Sub
Est-ce quelqu’un saura comment faire la même chose mais avec mes plages
nommés ?
Je vous remercie par avance pour votre aide.
rm81
J’ai une feuille d’Excel avec plusieurs pages et des plages nommées; par
exemple "ABC" a deux pages, "DEF" 3 pages etc. Je voudrais pouvoir faire un
petit tableau sur la dernière page de ma feuille résumant le nombre de pages
dans chaque plage :
ABC 2 pages
DEF 3 pages
Total X pages
Seulement, les plages sont variables. J’ai réussi à avoir le total nombre
de pages avec :
Sub TotalNumberOfPages()
With ActiveSheet
.DisplayAutomaticPageBreaks = True
HorizBreaks = ActiveSheet.HPageBreaks.Count
HPages = HorizBreaks + 1
NumPages = HPages
.DisplayAutomaticPageBreaks = False
range("VERIFICATION_DU_DOSSIER").Cells(10, 4).Select
ActiveCell = NumPages
End With
End Sub
Est-ce quelqu’un saura comment faire la même chose mais avec mes plages
nommés ?
Je vous remercie par avance pour votre aide.
rm81

Poser une question


Voici comment comment connaître le nombre de pages de la plage nommée ABC :
Sub TotalNumberOfPages()
Range("ABC").Select
ActiveSheet.PageSetup.PrintArea = Range("ABC").Address
Cells(Range("ABC").Rows.Count, Range("ABC").Columns.Count).Activate
ActiveWindow.View = xlPageBreakPreview
NumPages = NumeroPage(ActiveCell)
End Sub
Function NumeroPage(Cellule As Range) As Integer
'L Longre, mpfe
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
Cordialement
docm
"rm81" news:
Merci beaucoup de m'avoir répondu. Je vais essayer ce weekend.
Bon weekend à vous :)
rm81
"docm" wrote: