problème avec pied de page

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #20615441
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" #
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
Marc
Le #20615581
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" %
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" #
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



michdenis
Le #20616141
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) 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" #
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" %
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" #
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



Marc
Le #20616631
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" 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) 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" #
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" %
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" #
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






michdenis
Le #20616731
| 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.
Marc
Le #20616851
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" %

| 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.








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

"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.








michdenis
Le #20616931
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" #
Petite question:
J'ai mis la macro dans ThisWorkbook et ensuite, je fais, macro, exécuter
macro, est-ce correct?

"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.








Marc
Le #20617091
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" %

| 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.








michdenis
Le #20617221
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"
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" %

| 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.








Publicité
Poster une réponse
Anonyme