GNT sans publicité, site mobile, fonctionnalitées exclusives...

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

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
docm
Le #3700631
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" 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


rm81
Le #3700541
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" 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







Publicité
Suivre les réponses
Poster une réponse
Anonyme