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

problème avec pied de page

11 réponses
Avatar
Marc
Bonjour à vous tous
Voici mon problème. J'aimerais paginer un document, à la manière de Word
(c'est-à-dire, pas mettre le numéro de page, sur la première page, et
commencer après avec le numéro 1 sur la deuxième page, etc.)
Voici un exemple:
Feuille Présentation (pas de pagination)
Feuille Table des matières (pas de pagination)
Feuille Introduction ( je veux qu'elle soit numéroté comme page 1, mais je
ne veux pas le voir)
Feuille Début (devrait être page 2)

Comment dois-je m'y prendre?
Merci de votre aide.
Marc

10 réponses

1 2
Avatar
michdenis
Bonjour Marc,

Tu pourrais avoir une macro comme celle-ci :

La boucle débute par la feuille la plus à gauche dans
le classeur, j'ai supposé que tes feuilles étaient placées
en ordre ... 3 premières feuilles sans pagination, suivies
des autres feuilles avec pagination.
Si tes feuilles ont une autre présentation, il faudra revoir
la procédure...!

'--------------------------------------------------
Sub Imprimer_Feuilles_Classeur()

Dim Sh As Worksheet
Dim No_Page As Integer

'Sélection de toutes les feuilles du classeur
Sheets.Select

No_Page = 1
Application.EnableEvents = False
For Each Sh In Worksheets
'codename: le nom des objets feuille
'dans la fenêtre de l'éditeur de code
'et non le nom des onglets de la feuille
Select Case UCase(Sh.CodeName)
Case "FEUIL1" ', "FEUIL2", "FEUIL3"
'Feuille sans pagination
'Feuille Présentation (pas de pagination
'Feuille Table des matières (pas de pagination)
'Feuille Introduction
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Case Else
'Avec pagination
No_Page = No_Page + 1
With Sh
With .PageSetup
.CenterFooter = No_Page
End With
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
.PrintPreview
End With
End Select
Next
Application.EnableEvents = True

End Sub
'--------------------------------------------------



"Marc" a écrit dans le message de groupe de discussion :
#
Bonjour à vous tous
Voici mon problème. J'aimerais paginer un document, à la manière de Word
(c'est-à-dire, pas mettre le numéro de page, sur la première page, et
commencer après avec le numéro 1 sur la deuxième page, etc.)
Voici un exemple:
Feuille Présentation (pas de pagination)
Feuille Table des matières (pas de pagination)
Feuille Introduction ( je veux qu'elle soit numéroté comme page 1, mais je
ne veux pas le voir)
Feuille Début (devrait être page 2)

Comment dois-je m'y prendre?
Merci de votre aide.
Marc
Avatar
Marc
Salut Mich Denis
j'ai oublié de mentionner que ça devait indiquer, exemple, page 2 de (nombre
totals de page)
Désolé
Alors, à ce moment là, le code deviendrait?
Merci encore de ton aide et désolé pour l'erreur.
Marc

"michdenis" a écrit dans le message de news:
%
Bonjour Marc,

Tu pourrais avoir une macro comme celle-ci :

La boucle débute par la feuille la plus à gauche dans
le classeur, j'ai supposé que tes feuilles étaient placées
en ordre ... 3 premières feuilles sans pagination, suivies
des autres feuilles avec pagination.
Si tes feuilles ont une autre présentation, il faudra revoir
la procédure...!

'--------------------------------------------------
Sub Imprimer_Feuilles_Classeur()

Dim Sh As Worksheet
Dim No_Page As Integer

'Sélection de toutes les feuilles du classeur
Sheets.Select

No_Page = 1
Application.EnableEvents = False
For Each Sh In Worksheets
'codename: le nom des objets feuille
'dans la fenêtre de l'éditeur de code
'et non le nom des onglets de la feuille
Select Case UCase(Sh.CodeName)
Case "FEUIL1" ', "FEUIL2", "FEUIL3"
'Feuille sans pagination
'Feuille Présentation (pas de pagination
'Feuille Table des matières (pas de pagination)
'Feuille Introduction
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Case Else
'Avec pagination
No_Page = No_Page + 1
With Sh
With .PageSetup
.CenterFooter = No_Page
End With
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
.PrintPreview
End With
End Select
Next
Application.EnableEvents = True

End Sub
'--------------------------------------------------



"Marc" a écrit dans le message de groupe de discussion :
#
Bonjour à vous tous
Voici mon problème. J'aimerais paginer un document, à la manière de Word
(c'est-à-dire, pas mettre le numéro de page, sur la première page, et
commencer après avec le numéro 1 sur la deuxième page, etc.)
Voici un exemple:
Feuille Présentation (pas de pagination)
Feuille Table des matières (pas de pagination)
Feuille Introduction ( je veux qu'elle soit numéroté comme page 1, mais je
ne veux pas le voir)
Feuille Début (devrait être page 2)

Comment dois-je m'y prendre?
Merci de votre aide.
Marc



Avatar
michdenis
Attention aux coupures de ligne de code inopportunes

'-------------------------------------------------------
Sub Imprimer_Feuilles_Classeur()

Dim Sh As Worksheet
Dim No_Page As Integer
Dim Nb_Pages As Integer
Dim Feuille As String
Dim A As Integer, Nb As Integer

Feuille = ActiveSheet.Name
Application.ScreenUpdating = False
'Sélection de toutes les feuilles du classeur
Sheets.Select

For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
'"FEUIL1" et "FEUIL2" -> c'est le codename
If UCase(Sh.CodeName) <> "FEUIL1" And UCase(Sh.CodeName) <> "FEUIL2" Then
Nb_Pages = Nb_Pages + ExecuteExcel4Macro("GET.DOCUMENT(50)")
End If
Next
Sheets(1).Activate

Application.EnableEvents = False
For Each Sh In Worksheets
Sh.Activate
'codename: le nom des objets feuille
'dans la fenêtre de l'éditeur de code
'et non le nom des onglets de la feuille
Select Case UCase(Sh.CodeName)
Case "FEUIL1", "FEUIL2"
'Feuille sans pagination
'Feuille Présentation (pas de pagination
'Feuille Table des matières (pas de pagination)

'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Case Else
Nb = ExecuteExcel4Macro("GET.DOCUMENT(50)")
For A = 1 To Nb
No_Page = No_Page + 1
With Sh
If No_Page > 1 Then
With .PageSetup
.CenterFooter = _
No_Page & " page de " & _
Nb_Pages & " Pages"
End With
Else
.PageSetup.CenterFooter = ""
End If
End With
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Next
End Select
Next
Application.EnableEvents = True
Sheets(Feuille).Select
Application.ScreenUpdating = False
End Sub
'-------------------------------------------------------




"Marc" a écrit dans le message de groupe de discussion :
#
Salut Mich Denis
j'ai oublié de mentionner que ça devait indiquer, exemple, page 2 de (nombre
totals de page)
Désolé
Alors, à ce moment là, le code deviendrait?
Merci encore de ton aide et désolé pour l'erreur.
Marc

"michdenis" a écrit dans le message de news:
%
Bonjour Marc,

Tu pourrais avoir une macro comme celle-ci :

La boucle débute par la feuille la plus à gauche dans
le classeur, j'ai supposé que tes feuilles étaient placées
en ordre ... 3 premières feuilles sans pagination, suivies
des autres feuilles avec pagination.
Si tes feuilles ont une autre présentation, il faudra revoir
la procédure...!

'--------------------------------------------------
Sub Imprimer_Feuilles_Classeur()

Dim Sh As Worksheet
Dim No_Page As Integer

'Sélection de toutes les feuilles du classeur
Sheets.Select

No_Page = 1
Application.EnableEvents = False
For Each Sh In Worksheets
'codename: le nom des objets feuille
'dans la fenêtre de l'éditeur de code
'et non le nom des onglets de la feuille
Select Case UCase(Sh.CodeName)
Case "FEUIL1" ', "FEUIL2", "FEUIL3"
'Feuille sans pagination
'Feuille Présentation (pas de pagination
'Feuille Table des matières (pas de pagination)
'Feuille Introduction
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Case Else
'Avec pagination
No_Page = No_Page + 1
With Sh
With .PageSetup
.CenterFooter = No_Page
End With
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
.PrintPreview
End With
End Select
Next
Application.EnableEvents = True

End Sub
'--------------------------------------------------



"Marc" a écrit dans le message de groupe de discussion :
#
Bonjour à vous tous
Voici mon problème. J'aimerais paginer un document, à la manière de Word
(c'est-à-dire, pas mettre le numéro de page, sur la première page, et
commencer après avec le numéro 1 sur la deuxième page, etc.)
Voici un exemple:
Feuille Présentation (pas de pagination)
Feuille Table des matières (pas de pagination)
Feuille Introduction ( je veux qu'elle soit numéroté comme page 1, mais je
ne veux pas le voir)
Feuille Début (devrait être page 2)

Comment dois-je m'y prendre?
Merci de votre aide.
Marc



Avatar
Marc
Salut Mich Denis
Si je l'exécute sur un fichier Vierge, ça fonction.
Si je l'exécute sur mon fichier, qui soit dit en passant, à plusieurs
feuilles et tous ont été renommées, j'ai l'erreur 400.
Merci de m'aider
marc


"michdenis" a écrit dans le message de news:
e%
Attention aux coupures de ligne de code inopportunes

'-------------------------------------------------------
Sub Imprimer_Feuilles_Classeur()

Dim Sh As Worksheet
Dim No_Page As Integer
Dim Nb_Pages As Integer
Dim Feuille As String
Dim A As Integer, Nb As Integer

Feuille = ActiveSheet.Name
Application.ScreenUpdating = False
'Sélection de toutes les feuilles du classeur
Sheets.Select

For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
'"FEUIL1" et "FEUIL2" -> c'est le codename
If UCase(Sh.CodeName) <> "FEUIL1" And UCase(Sh.CodeName) <> "FEUIL2"
Then
Nb_Pages = Nb_Pages + ExecuteExcel4Macro("GET.DOCUMENT(50)")
End If
Next
Sheets(1).Activate

Application.EnableEvents = False
For Each Sh In Worksheets
Sh.Activate
'codename: le nom des objets feuille
'dans la fenêtre de l'éditeur de code
'et non le nom des onglets de la feuille
Select Case UCase(Sh.CodeName)
Case "FEUIL1", "FEUIL2"
'Feuille sans pagination
'Feuille Présentation (pas de pagination
'Feuille Table des matières (pas de pagination)

'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Case Else
Nb = ExecuteExcel4Macro("GET.DOCUMENT(50)")
For A = 1 To Nb
No_Page = No_Page + 1
With Sh
If No_Page > 1 Then
With .PageSetup
.CenterFooter = _
No_Page & " page de " & _
Nb_Pages & " Pages"
End With
Else
.PageSetup.CenterFooter = ""
End If
End With
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Next
End Select
Next
Application.EnableEvents = True
Sheets(Feuille).Select
Application.ScreenUpdating = False
End Sub
'-------------------------------------------------------




"Marc" a écrit dans le message de groupe de discussion :
#
Salut Mich Denis
j'ai oublié de mentionner que ça devait indiquer, exemple, page 2 de
(nombre
totals de page)
Désolé
Alors, à ce moment là, le code deviendrait?
Merci encore de ton aide et désolé pour l'erreur.
Marc

"michdenis" a écrit dans le message de news:
%
Bonjour Marc,

Tu pourrais avoir une macro comme celle-ci :

La boucle débute par la feuille la plus à gauche dans
le classeur, j'ai supposé que tes feuilles étaient placées
en ordre ... 3 premières feuilles sans pagination, suivies
des autres feuilles avec pagination.
Si tes feuilles ont une autre présentation, il faudra revoir
la procédure...!

'--------------------------------------------------
Sub Imprimer_Feuilles_Classeur()

Dim Sh As Worksheet
Dim No_Page As Integer

'Sélection de toutes les feuilles du classeur
Sheets.Select

No_Page = 1
Application.EnableEvents = False
For Each Sh In Worksheets
'codename: le nom des objets feuille
'dans la fenêtre de l'éditeur de code
'et non le nom des onglets de la feuille
Select Case UCase(Sh.CodeName)
Case "FEUIL1" ', "FEUIL2", "FEUIL3"
'Feuille sans pagination
'Feuille Présentation (pas de pagination
'Feuille Table des matières (pas de pagination)
'Feuille Introduction
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
Sh.PrintPreview
Case Else
'Avec pagination
No_Page = No_Page + 1
With Sh
With .PageSetup
.CenterFooter = No_Page
End With
'Tu modifies PrintPreview pour Printout
'lorsque tout est correct...
.PrintPreview
End With
End Select
Next
Application.EnableEvents = True

End Sub
'--------------------------------------------------



"Marc" a écrit dans le message de groupe de discussion :
#
Bonjour à vous tous
Voici mon problème. J'aimerais paginer un document, à la manière de Word
(c'est-à-dire, pas mettre le numéro de page, sur la première page, et
commencer après avec le numéro 1 sur la deuxième page, etc.)
Voici un exemple:
Feuille Présentation (pas de pagination)
Feuille Table des matières (pas de pagination)
Feuille Introduction ( je veux qu'elle soit numéroté comme page 1, mais
je
ne veux pas le voir)
Feuille Début (devrait être page 2)

Comment dois-je m'y prendre?
Merci de votre aide.
Marc






Avatar
michdenis
| Si je l'exécute sur un fichier Vierge, ça fonction.
*** c'est surprenant cas "Aperçu avant impression"
n'est pas accessible lorsqu'une feuille est totalement
vide -> Essaie en utilisant le menu Fichier -> "Aperçu avant impression"

À 2 endroits dans la procédure, on retrouve ceci :|"FEUIL1" et "FEUIL2"
Il s'agit de la propriété "NAME" des objets "FEUILLE" visible seulement à
partir de la fenêtre VBA et non l'onglet de la feuille.
De plus, Feuil1 et Feuil2 doivent représenter les 2 feuilles :
Feuille Présentation (pas de pagination, Feuille Table des matières

Exemple : Feuil1(Feuil1)
Feuil1 -> Propriété name de la feuille
(Feuil1) -> Nom de l'onglet de la feuille.

Si après ces commentaires, tu as toujours une erreur, exécute le code
pas à pas et donne moi la ligne de code qui génère cette erreur.
Avatar
Marc
Merci Michdenis
Quand je parlais d'un fichier vierge, je parlais d'un fichier où les
feuilles n'ont pas été renommé. Mauvaise explication de ma part., désolé
Je fais ce que tu me demandes et je te reviens.
Marc

"michdenis" a écrit dans le message de news:
%

| Si je l'exécute sur un fichier Vierge, ça fonction.
*** c'est surprenant cas "Aperçu avant impression"
n'est pas accessible lorsqu'une feuille est totalement
vide -> Essaie en utilisant le menu Fichier -> "Aperçu avant
impression"

À 2 endroits dans la procédure, on retrouve ceci :|"FEUIL1" et "FEUIL2"
Il s'agit de la propriété "NAME" des objets "FEUILLE" visible seulement à
partir de la fenêtre VBA et non l'onglet de la feuille.
De plus, Feuil1 et Feuil2 doivent représenter les 2 feuilles :
Feuille Présentation (pas de pagination, Feuille Table des matières

Exemple : Feuil1(Feuil1)
Feuil1 -> Propriété name de la feuille
(Feuil1) -> Nom de l'onglet de la feuille.

Si après ces commentaires, tu as toujours une erreur, exécute le code
pas à pas et donne moi la ligne de code qui génère cette erreur.








Avatar
Marc
Petite question:
J'ai mis la macro dans ThisWorkbook et ensuite, je fais, macro, exécuter
macro, est-ce correct?

"michdenis" a écrit dans le message de news:
%

| Si je l'exécute sur un fichier Vierge, ça fonction.
*** c'est surprenant cas "Aperçu avant impression"
n'est pas accessible lorsqu'une feuille est totalement
vide -> Essaie en utilisant le menu Fichier -> "Aperçu avant
impression"

À 2 endroits dans la procédure, on retrouve ceci :|"FEUIL1" et "FEUIL2"
Il s'agit de la propriété "NAME" des objets "FEUILLE" visible seulement à
partir de la fenêtre VBA et non l'onglet de la feuille.
De plus, Feuil1 et Feuil2 doivent représenter les 2 feuilles :
Feuille Présentation (pas de pagination, Feuille Table des matières

Exemple : Feuil1(Feuil1)
Feuil1 -> Propriété name de la feuille
(Feuil1) -> Nom de l'onglet de la feuille.

Si après ces commentaires, tu as toujours une erreur, exécute le code
pas à pas et donne moi la ligne de code qui génère cette erreur.








Avatar
michdenis
Une macro ça va dans un module standard.

Dans le ThisWorkbook seulement si tu veux utiliser
l'événement suivant pour déclencher la macro :

Private Sub Workbook_BeforePrint(Cancel As Boolean)

End Sub




"Marc" a écrit dans le message de groupe de discussion :
#
Petite question:
J'ai mis la macro dans ThisWorkbook et ensuite, je fais, macro, exécuter
macro, est-ce correct?

"michdenis" a écrit dans le message de news:
%

| Si je l'exécute sur un fichier Vierge, ça fonction.
*** c'est surprenant cas "Aperçu avant impression"
n'est pas accessible lorsqu'une feuille est totalement
vide -> Essaie en utilisant le menu Fichier -> "Aperçu avant
impression"

À 2 endroits dans la procédure, on retrouve ceci :|"FEUIL1" et "FEUIL2"
Il s'agit de la propriété "NAME" des objets "FEUILLE" visible seulement à
partir de la fenêtre VBA et non l'onglet de la feuille.
De plus, Feuil1 et Feuil2 doivent représenter les 2 feuilles :
Feuille Présentation (pas de pagination, Feuille Table des matières

Exemple : Feuil1(Feuil1)
Feuil1 -> Propriété name de la feuille
(Feuil1) -> Nom de l'onglet de la feuille.

Si après ces commentaires, tu as toujours une erreur, exécute le code
pas à pas et donne moi la ligne de code qui génère cette erreur.








Avatar
Marc
Je viens de le faire sur un autre fichier et ça fonctionne presque
parfaitement, le seul hic, c'est qu'elle compte uniquement les pages de la
feuille en cours et non le total au complet du fichier.
Exemple:
feuille Présentation = 1 feuille imprimer ( pas de pagination)
feuille Table des matières= 1 feuille imprimer ( pas de pagination
feuille Introduction = 1 feuille imprimer( mais on ne veut pas voir la
pagnination)
Feuille janvier= 18 feuilles imprimer ( j'aimerais voir, sur le première
feuille imprimé, 2 de 29 (1+18+10)
Feuille février= 10 feuilles imprimer

j'ai essayé ceci dans le pied de pages
Page &[Page] de &[Pages]
Ça fonctionne, mais le hic, c,est qu'il me calcul mes deux premieres pages,
donc au lieu, à la dernière page, d'avoir Page 49 de 49, j'ai Page 49 de 51,
même si je sais que je n'ai que 49 pages à paginer.
J'aurais pensé faire quelque chose avec moins 2, mais ça ne fonctionne pas.
Merci de votre aide.
Marc





"michdenis" a écrit dans le message de news:
%

| Si je l'exécute sur un fichier Vierge, ça fonction.
*** c'est surprenant cas "Aperçu avant impression"
n'est pas accessible lorsqu'une feuille est totalement
vide -> Essaie en utilisant le menu Fichier -> "Aperçu avant
impression"

À 2 endroits dans la procédure, on retrouve ceci :|"FEUIL1" et "FEUIL2"
Il s'agit de la propriété "NAME" des objets "FEUILLE" visible seulement à
partir de la fenêtre VBA et non l'onglet de la feuille.
De plus, Feuil1 et Feuil2 doivent représenter les 2 feuilles :
Feuille Présentation (pas de pagination, Feuille Table des matières

Exemple : Feuil1(Feuil1)
Feuil1 -> Propriété name de la feuille
(Feuil1) -> Nom de l'onglet de la feuille.

Si après ces commentaires, tu as toujours une erreur, exécute le code
pas à pas et donne moi la ligne de code qui génère cette erreur.








Avatar
michdenis
Si tu veux obtenir dans le décompte des feuilles imprimer
la feuille de présentation et la table des matières

Dans la première boucle tu enlèves le test sur les 2 feuilles
'-----------------------------
For Each Sh In ActiveWindow.SelectedSheets
Sh.Activate
Nb_Pages = Nb_Pages + ExecuteExcel4Macro("GET.DOCUMENT(50)")
Next
'-----------------------------

Pour moi, c'était ma dernière intervention sur ce fil.




"Marc" a écrit dans le message de groupe de discussion :

Je viens de le faire sur un autre fichier et ça fonctionne presque
parfaitement, le seul hic, c'est qu'elle compte uniquement les pages de la
feuille en cours et non le total au complet du fichier.
Exemple:
feuille Présentation = 1 feuille imprimer ( pas de pagination)
feuille Table des matières= 1 feuille imprimer ( pas de pagination
feuille Introduction = 1 feuille imprimer( mais on ne veut pas voir la
pagnination)
Feuille janvier= 18 feuilles imprimer ( j'aimerais voir, sur le première
feuille imprimé, 2 de 29 (1+18+10)
Feuille février= 10 feuilles imprimer

j'ai essayé ceci dans le pied de pages
Page &[Page] de &[Pages]
Ça fonctionne, mais le hic, c,est qu'il me calcul mes deux premieres pages,
donc au lieu, à la dernière page, d'avoir Page 49 de 49, j'ai Page 49 de 51,
même si je sais que je n'ai que 49 pages à paginer.
J'aurais pensé faire quelque chose avec moins 2, mais ça ne fonctionne pas.
Merci de votre aide.
Marc





"michdenis" a écrit dans le message de news:
%

| Si je l'exécute sur un fichier Vierge, ça fonction.
*** c'est surprenant cas "Aperçu avant impression"
n'est pas accessible lorsqu'une feuille est totalement
vide -> Essaie en utilisant le menu Fichier -> "Aperçu avant
impression"

À 2 endroits dans la procédure, on retrouve ceci :|"FEUIL1" et "FEUIL2"
Il s'agit de la propriété "NAME" des objets "FEUILLE" visible seulement à
partir de la fenêtre VBA et non l'onglet de la feuille.
De plus, Feuil1 et Feuil2 doivent représenter les 2 feuilles :
Feuille Présentation (pas de pagination, Feuille Table des matières

Exemple : Feuil1(Feuil1)
Feuil1 -> Propriété name de la feuille
(Feuil1) -> Nom de l'onglet de la feuille.

Si après ces commentaires, tu as toujours une erreur, exécute le code
pas à pas et donne moi la ligne de code qui génère cette erreur.








1 2