Je souhaite afficher dans une cellule le numéro de la page qui contient la
cellule.
Il s'agirait donc d'un équivalent au champ numéro de page que l'on peut
trouver dans les sections "En-tête" et "Pieds de page", mais que je pourrais
inclure dans une cellule de mon document.
J'ai parcouru les fonctions intégrées d'EXCEL mais je n'ai rien trouvé.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
ru-th
Salut
un petit tour ici http://perso.wanadoo.fr/frederic.sigonneau/code/Impr/NumeroPageCellule.txt a+ rural thierry
"Christophe LE GUILLOU" a écrit dans le message de news:
Bonjour,
Je souhaite afficher dans une cellule le numéro de la page qui contient la cellule. Il s'agirait donc d'un équivalent au champ numéro de page que l'on peut trouver dans les sections "En-tête" et "Pieds de page", mais que je pourrais
inclure dans une cellule de mon document. J'ai parcouru les fonctions intégrées d'EXCEL mais je n'ai rien trouvé.
Quelqu'un aurait t'il une solution?
Cordialement,
Salut
un petit tour ici
http://perso.wanadoo.fr/frederic.sigonneau/code/Impr/NumeroPageCellule.txt
a+
rural thierry
"Christophe LE GUILLOU" <ChristopheLEGUILLOU@discussions.microsoft.com> a
écrit dans le message de
news:5A196170-2DAE-48F6-BB61-EB253596D1C4@microsoft.com...
Bonjour,
Je souhaite afficher dans une cellule le numéro de la page qui contient la
cellule.
Il s'agirait donc d'un équivalent au champ numéro de page que l'on peut
trouver dans les sections "En-tête" et "Pieds de page", mais que je
pourrais
inclure dans une cellule de mon document.
J'ai parcouru les fonctions intégrées d'EXCEL mais je n'ai rien trouvé.
un petit tour ici http://perso.wanadoo.fr/frederic.sigonneau/code/Impr/NumeroPageCellule.txt a+ rural thierry
"Christophe LE GUILLOU" a écrit dans le message de news:
Bonjour,
Je souhaite afficher dans une cellule le numéro de la page qui contient la cellule. Il s'agirait donc d'un équivalent au champ numéro de page que l'on peut trouver dans les sections "En-tête" et "Pieds de page", mais que je pourrais
inclure dans une cellule de mon document. J'ai parcouru les fonctions intégrées d'EXCEL mais je n'ai rien trouvé.
Quelqu'un aurait t'il une solution?
Cordialement,
Christophe LE GUILLOU
Merci pour votre réponse Thierry!
J'avais déjà vu ce code qui répond en partie à mon besoin.
Ce code fonctionne parfaitement si on passe comme paramètres de la fonction les coordonnées de la cellule, par exemple =NumeroPage(A1:A1). Ce n'est pas efficace dans mon cas car si j'insère 100 lignes au dessus de la cellule, la formule sera déclaée sur une autre page mais elle renverra toujours le numéro de page de la cellule A1:A1.
Pour répondre à mon besoin, il faudrait que la fonction NumeroPage() évalue elle même les coordonnées de la cellule qui la contient.
Est ce possible?
Merci pour votre réponse Thierry!
J'avais déjà vu ce code qui répond en partie à mon besoin.
Ce code fonctionne parfaitement si on passe comme paramètres de la fonction
les coordonnées de la cellule, par exemple =NumeroPage(A1:A1).
Ce n'est pas efficace dans mon cas car si j'insère 100 lignes au dessus de
la cellule, la formule sera déclaée sur une autre page mais elle renverra
toujours le numéro de page de la cellule A1:A1.
Pour répondre à mon besoin, il faudrait que la fonction NumeroPage() évalue
elle même les coordonnées de la cellule qui la contient.
J'avais déjà vu ce code qui répond en partie à mon besoin.
Ce code fonctionne parfaitement si on passe comme paramètres de la fonction les coordonnées de la cellule, par exemple =NumeroPage(A1:A1). Ce n'est pas efficace dans mon cas car si j'insère 100 lignes au dessus de la cellule, la formule sera déclaée sur une autre page mais elle renverra toujours le numéro de page de la cellule A1:A1.
Pour répondre à mon besoin, il faudrait que la fonction NumeroPage() évalue elle même les coordonnées de la cellule qui la contient.
Est ce possible?
Ange Ounis
Je te propose d'ajouter une ligne à la fonction de Laurent Longre :
'''''''''''''''' 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
Application.Volatile ' <-- ici
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 '''''''''''''''''
Ça devrait fonctionner comme tu le souhaites.
---------- Ange Ounis ----------
Merci pour votre réponse Thierry!
J'avais déjà vu ce code qui répond en partie à mon besoin.
Ce code fonctionne parfaitement si on passe comme paramètres de la fonction les coordonnées de la cellule, par exemple =NumeroPage(A1:A1). Ce n'est pas efficace dans mon cas car si j'insère 100 lignes au dessus de la cellule, la formule sera déclaée sur une autre page mais elle renverra toujours le numéro de page de la cellule A1:A1.
Pour répondre à mon besoin, il faudrait que la fonction NumeroPage() évalue elle même les coordonnées de la cellule qui la contient.
Est ce possible?
Je te propose d'ajouter une ligne à la fonction de Laurent Longre :
''''''''''''''''
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
Application.Volatile ' <-- ici
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
'''''''''''''''''
Ça devrait fonctionner comme tu le souhaites.
----------
Ange Ounis
----------
Merci pour votre réponse Thierry!
J'avais déjà vu ce code qui répond en partie à mon besoin.
Ce code fonctionne parfaitement si on passe comme paramètres de la fonction
les coordonnées de la cellule, par exemple =NumeroPage(A1:A1).
Ce n'est pas efficace dans mon cas car si j'insère 100 lignes au dessus de
la cellule, la formule sera déclaée sur une autre page mais elle renverra
toujours le numéro de page de la cellule A1:A1.
Pour répondre à mon besoin, il faudrait que la fonction NumeroPage() évalue
elle même les coordonnées de la cellule qui la contient.
Je te propose d'ajouter une ligne à la fonction de Laurent Longre :
'''''''''''''''' 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
Application.Volatile ' <-- ici
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 '''''''''''''''''
Ça devrait fonctionner comme tu le souhaites.
---------- Ange Ounis ----------
Merci pour votre réponse Thierry!
J'avais déjà vu ce code qui répond en partie à mon besoin.
Ce code fonctionne parfaitement si on passe comme paramètres de la fonction les coordonnées de la cellule, par exemple =NumeroPage(A1:A1). Ce n'est pas efficace dans mon cas car si j'insère 100 lignes au dessus de la cellule, la formule sera déclaée sur une autre page mais elle renverra toujours le numéro de page de la cellule A1:A1.
Pour répondre à mon besoin, il faudrait que la fonction NumeroPage() évalue elle même les coordonnées de la cellule qui la contient.