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

numéroter les onglets ayant plusieurs pages

8 réponses
Avatar
gilles
Bonjour à tous,
Un fichier comportant plusieurs onglets
Certains onglets ont plusieurs pages
j'aimerais numéroter, à suivre, toutes les pages de tous les onglets, en
pied de page ou dans une cellule, en fonction du nbre total de pages
ex, pour 2 onglets:
l'onglet 1 comporte 3 pages : chaque page se numérote 1 de 5, 2 de 5, 3 de 5
l'onglet 2 comporte 2 pages : 4 de 5, 5 de 5

J'ai une cellule C2, dans l'onglet Ind F , qui collationne le nombre de
pages de tous les onglets
J'ai commencé un code mais qui ne restituee pas comme expliqué ci-dessus--

Sub page()
Dim intIndice As Integer
Dim intNbrFeuille As Integer
Dim intNbrFolio As Integer
intNbrFeuille = Worksheets.Count
intNbrFolio = intNbrFeuille

For intIndice = 1 To intNbrFeuille
If Worksheets(intIndice).Name <> "Ind F" Then
Worksheets(intIndice).Select
nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
Range("C1").Value = nbpages
End If
Next

For intIndice = 1 To intNbrFeuille
If Worksheets(intIndice).Name <> "Ind F" Then
Worksheets(intIndice).Select
Range("A2").Value = "Folio"
'Range("A2").Value = "Folio " & intIndice ' & "/" & intNbrFolio
Range("B2").Value = intIndice & "/" '& intNbrFolio

Range("C2").Value = Sheets("Ind F").Range("C1") '.Value
End If
Next
Sheets("Ind F").Select
'End If
End Sub

Merci à celles et ceusses qui ont le Savoir tout puissant !
...pour leur aide éventuelle
Gilles
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...

8 réponses

Avatar
FFO
Salut Gilles

Je te propose ce code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Ind F" Then
With Sheets(i).PageSetup
.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C2") & ""
End With
n = n + Sheets(i).HPageBreaks.Count + 1
End If
Next

Celà devrait te convenir

Dis moi !!!!!


"gilles" wrote:

Bonjour à tous,
Un fichier comportant plusieurs onglets
Certains onglets ont plusieurs pages
j'aimerais numéroter, à suivre, toutes les pages de tous les onglets, en
pied de page ou dans une cellule, en fonction du nbre total de pages
ex, pour 2 onglets:
l'onglet 1 comporte 3 pages : chaque page se numérote 1 de 5, 2 de 5, 3 de 5
l'onglet 2 comporte 2 pages : 4 de 5, 5 de 5

J'ai une cellule C2, dans l'onglet Ind F , qui collationne le nombre de
pages de tous les onglets
J'ai commencé un code mais qui ne restituee pas comme expliqué ci-dessus--

Sub page()
Dim intIndice As Integer
Dim intNbrFeuille As Integer
Dim intNbrFolio As Integer
intNbrFeuille = Worksheets.Count
intNbrFolio = intNbrFeuille

For intIndice = 1 To intNbrFeuille
If Worksheets(intIndice).Name <> "Ind F" Then
Worksheets(intIndice).Select
nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
Range("C1").Value = nbpages
End If
Next

For intIndice = 1 To intNbrFeuille
If Worksheets(intIndice).Name <> "Ind F" Then
Worksheets(intIndice).Select
Range("A2").Value = "Folio"
'Range("A2").Value = "Folio " & intIndice ' & "/" & intNbrFolio
Range("B2").Value = intIndice & "/" '& intNbrFolio

Range("C2").Value = Sheets("Ind F").Range("C1") '.Value
End If
Next
Sheets("Ind F").Select
'End If
End Sub

Merci à celles et ceusses qui ont le Savoir tout puissant !
...pour leur aide éventuelle
Gilles
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


Avatar
gilles
bonjour FFO,et Merci
excuse le retard : souvent des pb de connexions aux news groups.
d'ou plusieurs tentatives
ça marche partiellement:
sur le 1er onglet: rien, ce qui est normal
sur le 2ème onglet de 4 pages: la 1ère page n'a rien la 2ème a 2/, la 3ème a
3/ la 4ème a 4/
sur le 3ème onglet, qui devrait donc recommencer à 5, on a 3/ et 4/
4ème pareil, bizarrement, on recommence bien à 5/
.....
de plus, derrière le /, il ne place pas le nombre de folio de la cell C2

MERCI
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"FFO" a écrit :

Salut Gilles

Je te propose ce code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Ind F" Then
With Sheets(i).PageSetup
.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C2") & ""
End With
n = n + Sheets(i).HPageBreaks.Count + 1
End If
Next

Celà devrait te convenir

Dis moi !!!!!


"gilles" wrote:

> Bonjour à tous,
> Un fichier comportant plusieurs onglets
> Certains onglets ont plusieurs pages
> j'aimerais numéroter, à suivre, toutes les pages de tous les onglets, en
> pied de page ou dans une cellule, en fonction du nbre total de pages
> ex, pour 2 onglets:
> l'onglet 1 comporte 3 pages : chaque page se numérote 1 de 5, 2 de 5, 3 de 5
> l'onglet 2 comporte 2 pages : 4 de 5, 5 de 5
>
> J'ai une cellule C2, dans l'onglet Ind F , qui collationne le nombre de
> pages de tous les onglets
> J'ai commencé un code mais qui ne restituee pas comme expliqué ci-dessus--
>
> Sub page()
> Dim intIndice As Integer
> Dim intNbrFeuille As Integer
> Dim intNbrFolio As Integer
> intNbrFeuille = Worksheets.Count
> intNbrFolio = intNbrFeuille
>
> For intIndice = 1 To intNbrFeuille
> If Worksheets(intIndice).Name <> "Ind F" Then
> Worksheets(intIndice).Select
> nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
> Range("C1").Value = nbpages
> End If
> Next
>
> For intIndice = 1 To intNbrFeuille
> If Worksheets(intIndice).Name <> "Ind F" Then
> Worksheets(intIndice).Select
> Range("A2").Value = "Folio"
> 'Range("A2").Value = "Folio " & intIndice ' & "/" & intNbrFolio
> Range("B2").Value = intIndice & "/" '& intNbrFolio
>
> Range("C2").Value = Sheets("Ind F").Range("C1") '.Value
> End If
> Next
> Sheets("Ind F").Select
> 'End If
> End Sub
>
> Merci à celles et ceusses qui ont le Savoir tout puissant !
> ...pour leur aide éventuelle
> Gilles
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
> mais à chaque jour suffit sa peine...


Avatar
FFO
Rebonjour Gilles

Chez moi sur un exemple que j'ai créé celà fonctionne parfaitement

Peux tu me transmettre le tien par ce biais :

http://www.cijoint.fr/index.php

Afin que je l'analyse

Transmets moi le lien afin que je le récupère

Merci


"gilles" wrote:

bonjour FFO,et Merci
excuse le retard : souvent des pb de connexions aux news groups.
d'ou plusieurs tentatives
ça marche partiellement:
sur le 1er onglet: rien, ce qui est normal
sur le 2ème onglet de 4 pages: la 1ère page n'a rien la 2ème a 2/, la 3ème a
3/ la 4ème a 4/
sur le 3ème onglet, qui devrait donc recommencer à 5, on a 3/ et 4/
4ème pareil, bizarrement, on recommence bien à 5/
.....
de plus, derrière le /, il ne place pas le nombre de folio de la cell C2

MERCI
Gilles
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"FFO" a écrit :

> Salut Gilles
>
> Je te propose ce code :
>
> For i = 1 To Sheets.Count
> If Sheets(i).Name <> "Ind F" Then
> With Sheets(i).PageSetup
> .CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C2") & ""
> End With
> n = n + Sheets(i).HPageBreaks.Count + 1
> End If
> Next
>
> Celà devrait te convenir
>
> Dis moi !!!!!
>
>
> "gilles" wrote:
>
> > Bonjour à tous,
> > Un fichier comportant plusieurs onglets
> > Certains onglets ont plusieurs pages
> > j'aimerais numéroter, à suivre, toutes les pages de tous les onglets, en
> > pied de page ou dans une cellule, en fonction du nbre total de pages
> > ex, pour 2 onglets:
> > l'onglet 1 comporte 3 pages : chaque page se numérote 1 de 5, 2 de 5, 3 de 5
> > l'onglet 2 comporte 2 pages : 4 de 5, 5 de 5
> >
> > J'ai une cellule C2, dans l'onglet Ind F , qui collationne le nombre de
> > pages de tous les onglets
> > J'ai commencé un code mais qui ne restituee pas comme expliqué ci-dessus--
> >
> > Sub page()
> > Dim intIndice As Integer
> > Dim intNbrFeuille As Integer
> > Dim intNbrFolio As Integer
> > intNbrFeuille = Worksheets.Count
> > intNbrFolio = intNbrFeuille
> >
> > For intIndice = 1 To intNbrFeuille
> > If Worksheets(intIndice).Name <> "Ind F" Then
> > Worksheets(intIndice).Select
> > nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
> > Range("C1").Value = nbpages
> > End If
> > Next
> >
> > For intIndice = 1 To intNbrFeuille
> > If Worksheets(intIndice).Name <> "Ind F" Then
> > Worksheets(intIndice).Select
> > Range("A2").Value = "Folio"
> > 'Range("A2").Value = "Folio " & intIndice ' & "/" & intNbrFolio
> > Range("B2").Value = intIndice & "/" '& intNbrFolio
> >
> > Range("C2").Value = Sheets("Ind F").Range("C1") '.Value
> > End If
> > Next
> > Sheets("Ind F").Select
> > 'End If
> > End Sub
> >
> > Merci à celles et ceusses qui ont le Savoir tout puissant !
> > ...pour leur aide éventuelle
> > Gilles
> > en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
> > mais à chaque jour suffit sa peine...


Avatar
gilles
Merci- je te le joins brut de fonderie
je suis sous xl2007
http://www.cijoint.fr/cjlink.php?file=cj200902/cijnX9UmCG.xls
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"FFO" a écrit :

Salut Gilles

Je te propose ce code :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Ind F" Then
With Sheets(i).PageSetup
.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C2") & ""
End With
n = n + Sheets(i).HPageBreaks.Count + 1
End If
Next

Celà devrait te convenir

Dis moi !!!!!


"gilles" wrote:

> Bonjour à tous,
> Un fichier comportant plusieurs onglets
> Certains onglets ont plusieurs pages
> j'aimerais numéroter, à suivre, toutes les pages de tous les onglets, en
> pied de page ou dans une cellule, en fonction du nbre total de pages
> ex, pour 2 onglets:
> l'onglet 1 comporte 3 pages : chaque page se numérote 1 de 5, 2 de 5, 3 de 5
> l'onglet 2 comporte 2 pages : 4 de 5, 5 de 5
>
> J'ai une cellule C2, dans l'onglet Ind F , qui collationne le nombre de
> pages de tous les onglets
> J'ai commencé un code mais qui ne restituee pas comme expliqué ci-dessus--
>
> Sub page()
> Dim intIndice As Integer
> Dim intNbrFeuille As Integer
> Dim intNbrFolio As Integer
> intNbrFeuille = Worksheets.Count
> intNbrFolio = intNbrFeuille
>
> For intIndice = 1 To intNbrFeuille
> If Worksheets(intIndice).Name <> "Ind F" Then
> Worksheets(intIndice).Select
> nbpages = Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
> Range("C1").Value = nbpages
> End If
> Next
>
> For intIndice = 1 To intNbrFeuille
> If Worksheets(intIndice).Name <> "Ind F" Then
> Worksheets(intIndice).Select
> Range("A2").Value = "Folio"
> 'Range("A2").Value = "Folio " & intIndice ' & "/" & intNbrFolio
> Range("B2").Value = intIndice & "/" '& intNbrFolio
>
> Range("C2").Value = Sheets("Ind F").Range("C1") '.Value
> End If
> Next
> Sheets("Ind F").Select
> 'End If
> End Sub
>
> Merci à celles et ceusses qui ont le Savoir tout puissant !
> ...pour leur aide éventuelle
> Gilles
> en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
> mais à chaque jour suffit sa peine...


Avatar
FFO
Rebonjour Gilles

Aprés analyse de ton document il apparait 2 éléments qui empèchent le bon
fonctionnement du code

Le code fonctionne sur le nombre de sauts de page de la feuille directement
lié aux données présentes dans chacune d'elle

Or pour un certain nombre d'onglet le nombre de page est plus important que
le nombre de saut de page car les dernières sont vides

Est il normale de numéroter les pages vides ????

Il faudrait soit compléter ces pages vides de données soit supprimmer ces
pages en sélectionnant toutes leurs lignes et de les supprimer


Pour le nombre global de feuilles à faire apparaitre dans tes indications de
ton message initial tu parlais de la cellule C2 de l'onglet "Ind F" portant
cette information :

"J'ai une cellule C2, dans l'onglet Ind F , qui collationne le nombre de
pages de tous les onglets"

Or dans ton document onglet "Ind F" l'information est en C1 et non C2

Soit tu mets l'information en C2 soit tu corriges la ligne du code :

.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C2") & ""

ainsi

.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C1") & ""


Aprés avoir réalisé ces modifications fais des essais et dis moi !!!!!
Avatar
FFO
Rebonjour Gilles

Je te propose ce code qui supprime automatiquement les pages vides :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Ind F" Then
Ligne = Sheets(i).Range("A1").SpecialCells(xlLastCell).Row + 1
Do While Sheets(i).Range("A" & Ligne).End(xlToRight).Address =
Sheets(i).Range("IV" & Ligne).Address
Ligne = Ligne - 1
Loop
Rows(Ligne + 1 & ":65535").Delete
With Sheets(i).PageSetup
.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C1") & ""
End With
n = n + Sheets(i).HPageBreaks.Count + 1
End If
Next

Il fonctionne sous Excel 2003
Pour Excel 2007 il faut adapter cette ligne :

Do While Sheets(i).Range("A" & Ligne).End(xlToRight).Address =
Sheets(i).Range("IV" & Ligne).Address

Plus précisément la partie :

Sheets(i).Range("IV" & Ligne).Address

L'indice de la dernière colonne pour Excel 2003 est "IV"
L'adapter donc de l'indice de la dernière colonne pour Excel 2007


Ce code donc aprés avoir supprimé les pages vides des onglets mets la
pagination attendu

Penses à corriger l'onglet "Ind F" concernant le nombre total de page dans
la bonne cellule

Tiens moi informé !!!!!
Avatar
gilles
bonjour FFO...et merci de ton aide
pour la cellule C1 effectivement je m'en suis aperçu après
pour les pages vides, j' y avais pas pensé
je teste tes suggestions et je te recontacte aujourdhui (si j'arrive à me
connecter aux newsgroups!)
merci encore
Gilles72
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"FFO" a écrit :

Rebonjour Gilles

Je te propose ce code qui supprime automatiquement les pages vides :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Ind F" Then
Ligne = Sheets(i).Range("A1").SpecialCells(xlLastCell).Row + 1
Do While Sheets(i).Range("A" & Ligne).End(xlToRight).Address =
Sheets(i).Range("IV" & Ligne).Address
Ligne = Ligne - 1
Loop
Rows(Ligne + 1 & ":65535").Delete
With Sheets(i).PageSetup
.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C1") & ""
End With
n = n + Sheets(i).HPageBreaks.Count + 1
End If
Next

Il fonctionne sous Excel 2003
Pour Excel 2007 il faut adapter cette ligne :

Do While Sheets(i).Range("A" & Ligne).End(xlToRight).Address =
Sheets(i).Range("IV" & Ligne).Address

Plus précisément la partie :

Sheets(i).Range("IV" & Ligne).Address

L'indice de la dernière colonne pour Excel 2003 est "IV"
L'adapter donc de l'indice de la dernière colonne pour Excel 2007


Ce code donc aprés avoir supprimé les pages vides des onglets mets la
pagination attendu

Penses à corriger l'onglet "Ind F" concernant le nombre total de page dans
la bonne cellule

Tiens moi informé !!!!!



Avatar
gilles
Bonsoir FFO,
apparemment ton code fonctionne
juste un truc:
l'onglet Ind F n'a pas de pied de page
le 2 ème onglet a 4 pages numérotées 2/24, 3/24, 4/24
il manque 1/24
Sinon tous les autres onglets semblent se numéroter comme prévu

Si tu vois ou est le piège...
Merci de ton aide
cordialemnt
Gilles72
--
en VBA aussi, ne remettons pas au lendemain ce qu'on peut faire aujourd'hui,
mais à chaque jour suffit sa peine...


"FFO" a écrit :

Rebonjour Gilles

Je te propose ce code qui supprime automatiquement les pages vides :

For i = 1 To Sheets.Count
If Sheets(i).Name <> "Ind F" Then
Ligne = Sheets(i).Range("A1").SpecialCells(xlLastCell).Row + 1
Do While Sheets(i).Range("A" & Ligne).End(xlToRight).Address =
Sheets(i).Range("IV" & Ligne).Address
Ligne = Ligne - 1
Loop
Rows(Ligne + 1 & ":65535").Delete
With Sheets(i).PageSetup
.CenterFooter = "&P+" & n & "/" & Sheets("Ind F").Range("C1") & ""
End With
n = n + Sheets(i).HPageBreaks.Count + 1
End If
Next

Il fonctionne sous Excel 2003
Pour Excel 2007 il faut adapter cette ligne :

Do While Sheets(i).Range("A" & Ligne).End(xlToRight).Address =
Sheets(i).Range("IV" & Ligne).Address

Plus précisément la partie :

Sheets(i).Range("IV" & Ligne).Address

L'indice de la dernière colonne pour Excel 2003 est "IV"
L'adapter donc de l'indice de la dernière colonne pour Excel 2007


Ce code donc aprés avoir supprimé les pages vides des onglets mets la
pagination attendu

Penses à corriger l'onglet "Ind F" concernant le nombre total de page dans
la bonne cellule

Tiens moi informé !!!!!