Fonction N° de page sur excel

[Résolu/Fermé]
Signaler
Messages postés
2
Date d'inscription
jeudi 15 novembre 2007
Statut
Membre
Dernière intervention
1 novembre 2008
-
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
-
Bonjour,

J'ai un document excel où chaque onglet correspond à une page. Le document final sera constitué de l'ensemble des onglets du classeur.
Au final, le document sera imprimé en sélectionnant tous les onglets.

Je ne veux pas utiliser la fonction "pied de page personnalisé" pour insérer le N° de page car le N° de page doit apparaître dans un cartouche de bas de page.

Comment peut-on afficher le N° de page de chaque onglet?

Merci d'avance.
A voir également:

19 réponses

J'AI rajouter un petit truc en cas où tu rajouterai des pages


Sub Auto_open()

Application.ScreenUpdating = False
Worksheets("sommaire").Range("c4") = "Titre de page"
Worksheets("sommaire").Range("c5:c500") = ""

nb = Sheets.Count '
For i = 2 To nb
Sheets(i).Select
Range("bp52") = i + 1
Titre = Range("T52") & " " & Range("T53")

Worksheets("sommaire").Range("c65534").End(xlUp).Offset(1, 0) = Titre


Next
Application.ScreenUpdating = True
Sheets("sommaire").Select

End Sub
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 42674 internautes nous ont dit merci ce mois-ci

Merci néné,

en fait, il me faudrait créer une fonction que je pourrais utiliser sur chaque onglet et ainsi, je pourrais positionner le N° de page n'importe où.

Any suggestions

Merci d'avance
Merci Jean Pierre pour ta réponse

Mais malheureusement non, je ne veux pas que les onglets portent un numéro de page car le but du document est de pouvoir ajouter ou supprimer des onglets sans avoir à tout renuméroter.

Je pense qu'il est possible de créer cette fonction en vba, mais ds ce domaine mes connaisssances sont très limitées...!!

Any other suggestions ?
Bonjour

Voici une macro qui te permet de faire cela

Sub Pieddepage()

Application.ScreenUpdating = False

nb = Sheets.Count '

For i = 1 To nb


Sheets(i).Select

ActiveSheet.PageSetup.RightFooter = i

Next

Application.ScreenUpdating = True
Sheets(1).Select

End Sub
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonsoir,
Est-ce que par hasard les onglets sont nommés : Page 1 , Page 2.......Page x
Si c'est le cas il est possible de reprendre son nom et numéro dans un cellule de la même feuille avec la formule suivante:
=STXT(CELLULE("filename";A1);TROUVE("]";CELLULE("filename";A1))+1;32)
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonjour,
Merci, je vous comprend.
J'ai relu votre demande et pouvez-vous préciser ce qu'il faut comprendre par : le N° de page doit apparaître dans un cartouche de bas de page ?
En plus, quelle est le critère pour l'ordre de numérotation des pages ?
Bonjour

Voici une macro qui se lancera à l'ouverture du fichier
même si tu supprime ou tu ajoute des pages, les numéros de pages seront dans l'ordre

Sub Auto_open()

Application.ScreenUpdating = False
nb = Sheets.Count '
For i = 1 To nb
Sheets(i).Select
ActiveSheet.PageSetup.RightFooter = i
Next
Application.ScreenUpdating = True
Sheets(1).Select
End Sub
Bonjour Jean pierre

Par cartouche, j'entends un grand rectangle que je place en bas de toutes les pages (les onglets) de mon document dans lequel, je fais apparaître un certain nombre d'informations:
- fixes : titre du document - N° client - Nom du projet
- variable : le numéro de page

La structure du document m'impose que le numéro de page apparaisse dans ce cartouche et non en "pied de page".

Ainsi, il faut que la fonction soit capable de compter tous les onglets du classeur et que lorsque cette fonction est insérée dans la cellule d'une feuille excel, reconnaisse la position de l'onglet dans le claseur.

Autrement dit, si j'ai 10 feuiilles (onglets) et si je suis sur une cellule de la 7éme feuille (onglet), il faut qu'elle renvoie le numéro 7.

Voili voilou..!!!

Any other suggestion

blank1977

PS: merci néné, mais ta macro insère un numéro de page dans le pied de page....
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonjour blank1977,
Merci pour les informations.
J'ai exactement la même proposition que néné (celle du poste 9) qui fonctionne super bien.
Je pense que cela fait votre affaire.
Messages postés
24182
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
19 septembre 2021
6 886
Bonjour,

Tu peux essayer avec ceci.
Je te l'ai mis également sous forme de fonction mais le fonctionnement n'est pas satisfaisant. La mise à jour ne se fait que sur la feuille active en cas de déplacement et oblige à aller éditer chaque cellule où est la fonction. Je pense que c'est mieux de lancer le sub à chaque modif de tes feuilles.
Sub NumFeuilles()
    For i = 1 To Worksheets.Count
        Worksheets(i).[A1] = i
    Next i
End Sub
Function NumFeuille(cel As Range)
    Application.Volatile
    NumFeuille = ActiveSheet.Index
End Function


eric
Bonjour

Si ce n'ai pas en "Pied de page" alors c'est dans une cellule


Sub Auto_open()

Application.ScreenUpdating = False
nb = Sheets.Count '
For i = 1 To nb
Sheets(i).Select
Range("h15") = i 'La cellule ou tu veux tes numéros de page ici H15 pour exemple
Next
Application.ScreenUpdating = True
Sheets(1).Select
End Sub
Merci c'est parfait, la solution de néne fonctionne bien !! Merci aux autres pour votre aide !!

Sub Auto_open()

Application.ScreenUpdating = False
nb = Sheets.Count '
For i = 1 To nb
Sheets(i).Select
Range("h15") = i 'La cellule ou tu veux tes numéros de page ici H15 pour exemple
Next
Application.ScreenUpdating = True
Sheets(1).Select
End Sub


En revanche, j'ai un autre soucis....


Toujours sur le même type de fichier.


J'ai un onglet qui récapitule toutes les feuilles de mon classeur avce
N° de page Titre de la page

Je souhaiterais éviter d'avoir à retaper à la main tout mon sommaire !!

Or "titre dde la page" est présent dans une cellule de chacun des onglets et chaque onglet porte un nom à part. Par contre, la cellule où le titre de la page est affichée pour chaque onglet est toujous au même endroit (cellule AB32)

Comment puis-je faire un sommaire automatique avec "Numéro de page" et "Titre de la page"

Merci d'avance
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonsoir,
Sur l'onglet de récapitulation vous créer simplement une liaison qui pointe vers
Cellule Titre de la page "A5" formule '=Feuil2!AB32'
et n° page "B5" formule '=Feuil2!H15'
vous répetez l'opération pour chauque nouvelle feuille (onglet)
pour la deuxième se sera :"A6" formule '=Feuil3!AB32' et n° page "B6" formule '=Feuil3!H15'
Autrement élaborer une macro.
Ok merci jean pierre

en fait,avec cette technique, le plus juidicieux serait de créer le sommaire avant....mais c'est vrai qu'une petite macro serait la bienvenue, une macro qui permettrait de créer le sommaire !!!

Bon, c'est vrai, j'ai jamais fait de vba...alors si qqn a une solution, je suis preneur
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonjour,
Je veux bien vos élaborer une macro, donnez-moi exactement ce que vous voulez pour votre sommaire...N° page se trouve sur les onglets en "H15" , le tire en "AB32" .....etc.
Un seul classeur ou plusieurs ?
Merci.
Merci Jeran Pierre pour votre proposition...

- Le document ne concerne qu'un seul classeur
- Le Numéro de page se trouve en "BP52" sur chaque onglet
- Le Titre est une concaténation avec un espace, des celuules "T52" et "T53"

Bon courage
BJR

Creer la page "Sommaire" avant de lancer la macro
ET LA METTRE TOUT A FAIT A GAUCHE DES ONGLETS


Sub Auto_open()

Application.ScreenUpdating = False
Worksheets("sommaire").Range("c4") = "Titre de page"

nb = Sheets.Count '
For i = 2 To nb
Sheets(i).Select
Range("bp52") = i + 1
Titre = Range("T52") & " " & Range("T53")

Worksheets("sommaire").Range("c65534").End(xlUp).Offset(1, 0) = Titre


Next
Application.ScreenUpdating = True
Sheets("sommaire").Select

End Sub
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonsoir blank1977,
Merci néné pour le code que vous avez élaboré.
Je me suis permis d'y apporter 3 petits ajouts pour tenir compte de l'inscription du numéro de la page qui correspond au titre. Je crois qu'il le souhaitait.

Sub Auto_open()
Application.ScreenUpdating = False

Worksheets("sommaire").Range("a4") = "Titre de page"
Worksheets("sommaire").Range("c4") = "N° page"

Worksheets("sommaire").Range("a5:d500") = ""

nb = Sheets.Count '
For I = 2 To nb
Sheets(I).Select
NumPa = Range("BP52") 'BP52
Titre = Range("T52") & " " & Range("T53")

nuli = Worksheets("sommaire").Range("a65534").End(xlUp).Offset(1, 0).Row
Worksheets("sommaire").Cells(nuli, 1) = Titre
Worksheets("sommaire").Cells(nuli, 3) = NumPa

Next
Application.ScreenUpdating = True
Sheets("sommaire").Select

End Sub

Bonne soirée.
Merci Néné et Jean Pierre pour votre aide.
A très bientôt
Blank
Messages postés
10400
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
19 septembre 2021
1 201
Bonjour,
Merci, de rien.
Joyeux Noël et bonne et heureuse année 2008.