Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment trouver le nombre de pages dans des plages nommées?

2 réponses
Avatar
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

2 réponses

Avatar
docm
Bonjour rm81.

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" wrote in message
news:
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


Avatar
rm81
Bonjour Docm

Merci beaucoup de m'avoir répondu. Je vais essayer ce weekend.

Bon weekend à vous :)
rm81

"docm" wrote:

Bonjour rm81.

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" wrote in message
news:
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