OVH Cloud OVH Cloud

Comment puis-je insérer un numéro de page dans une cellule exel ?

2 réponses
Avatar
CHARTIER NATHALIE
Je cherche à insérer les numéros de page d'une feuille excel dans le corps
même d'une cellule et non pas en entête ou pied de page.
Exemple : Page 1 de 6
Bien sûr, les numéros doivent pouvoir se calculer eux même.
Merci d'avance à tous.
Nathalie

2 réponses

Avatar
Dédé
Salut Nathalie !

Ben peut-être un début avec la fonction =info("nbfich") ...

Autrement, cela devrait se trouver dans l'en-tête ou le pied de page de ton
classeur ...

Salutations
Dédé

"CHARTIER NATHALIE" <CHARTIER a écrit
dans le message de
news:
Je cherche à insérer les numéros de page d'une feuille excel dans le corps
même d'une cellule et non pas en entête ou pied de page.
Exemple : Page 1 de 6
Bien sûr, les numéros doivent pouvoir se calculer eux même.
Merci d'avance à tous.
Nathalie


Avatar
PMO
Bonjour,

Un code macro qui solutionnera votre problème en bonne partie.
(malheureusement pas de manière exhaustive car il y a des cas
où je n'ai pas voulu m'aventurer).

'***************************
Option Explicit
Sub NumerotationPages()
Dim reponse%
Dim ecart&
Dim MYCOL&
Dim R As Range
Dim NoDo As Boolean
Dim i&
Dim nbPage&
Dim HPS As HPageBreaks
Dim first&
Dim totalHeight!
Dim tempo!
Dim nbLig&
Dim cpt&
Dim T&()
On Error GoTo Erreur
reponse% = MsgBox(prompt:="Pour l'exécution de ce programme " & _
"il est nécessaire d'effacer les sauts de " & _
"page définis par l'utilisateur" & vbCrLf & _
"et de les remplacer par les sauts de page par défaut." & _
vbCrLf & vbCrLf & "Voulez-vous continuer ?", _
Buttons:=vbYesNo + vbInformation)
If reponse% = 7 Then Exit Sub
'---- Demande la colonne où les N° de page s'afficheront ----
Set R = Application.InputBox _
(prompt:="Veuillez sélectionner une cellule qui déterminera" & _
" la colonne dans laquelle apparaîtront les numéros de page", _
Type:=8)
MYCOL = R.Column
'---- Validité de la colonne (si données on sort) ----
If Not IsEmpty(Range(Cells(1, MYCOL), Cells(1, MYCOL))) Or _
Not IsEmpty(Range(Cells(65536, MYCOL), Cells(65536, MYCOL))) Or _
Range(Cells(1, MYCOL), Cells(1, MYCOL)).End(xlDown).Row _
< 65536 Then NoDo = True
If NoDo Then
MsgBox prompt:="La colonne ''" & MYCOL & _
"'' contient des données." & vbCrLf & vbCrLf _
& "Veuillez choisir une autre colonne pour les numéros de page.", _
Title:="Programme stoppé", Buttons:=vbExclamation
Exit Sub
End If
'---- Divers traitements et variables à renseigner ----
With ActiveSheet
.ResetAllPageBreaks
ecart& = .UsedRange.Row
nbLig& = .UsedRange.Rows.Count
Set HPS = .HPageBreaks
End With
first& = HPS(1).Location.Row - 1
nbPage& = HPS.Count + 1
ReDim T&(1 To nbPage&)
T&(1) = first&
T&(UBound(T&)) = nbLig& + ecart& - 1
totalHeight! = Range("a1:a" & first& & "").Height
'---- Recherche des bordures basses ----
cpt& = 1
For i& = first& + 1 To nbLig& + ecart& - 1
If tempo! > totalHeight! Then
cpt& = cpt& + 1
T&(cpt&) = i& - 2
i& = i& - 1
tempo! = 0
End If
tempo! = tempo! + Rows(i&).Height
Next i&
'---- Inscription des N° de page ----
Application.ScreenUpdating = False
For i& = 1 To UBound(T&)
Range(Cells(T&(i&), MYCOL), Cells(T&(i&), MYCOL)) = _
"Page " & i& & "/" & nbPage&
Next i&
'-------------------
Erreur:
Application.ScreenUpdating = True
End Sub
'***************************

Meilleures salutations.

PMO
Patrick Morange




Je cherche à insérer les numéros de page d'une feuille excel dans le corps
même d'une cellule et non pas en entête ou pied de page.
Exemple : Page 1 de 6
Bien sûr, les numéros doivent pouvoir se calculer eux même.
Merci d'avance à tous.
Nathalie