Comment imprimer la même page de plusieurs onglets

Résolu/Fermé
Flojo05 Messages postés 9 Date d'inscription lundi 3 octobre 2016 Statut Membre Dernière intervention 10 octobre 2016 - 3 oct. 2016 à 12:03
 Utilisateur anonyme - 10 oct. 2016 à 22:46
Bonjour,
Malgré mes différentes tentatives, je ne parviens pas à imprimer la même page de plusieurs onglets d'un même fichier.
Mon fichier contient environ 45 onglets, chacun faisant 12 pages. Je souhaite par exemple imprimer la page 4 de chaque onglet. Je sélectionne les onglets, je fais imprimer, je sélectionne le numéro de page à imprimer, je coche feuilles sélectionnées et ça m'imprime toujours que la page du 1er onglet.
Je n'y connais rien en macro mais je suis ouverte à vos explication pour en créer une si je dois en passer par là.
Merci d'avance
A voir également:

1 réponse

Bonjour Flojo05,

Si chaque onglet fait toujours 12 pages, alors :
la page 4 de l'onglet n est la page n° :

12 * (n - 1) + 4

Exemple : pour la page 4 de l'onglet 5, il te faudra imprimer
la page n° 12 × (5 - 1) + 4 = (12 × 4) + 4 = 48 + 4 = 52.

Ce renseignement est à utiliser soit pour une impression
manuelle de la page concernée, soit pour une macro.

Voici une macro pour imprimer la page 4 de l'onglet 5,
avec n = 5, x = 4.


Option Explicit

Private Sub PrintPageX(n As Integer, x As Byte)
  Worksheets(12 * (n - 1) + x).Printout
End Sub

Sub Essai()
  PrintPageX 5, 4
End Sub


Voici une autre macro pour imprimer toutes les pages 4
de chaque onglet, avec x = 4 :


Option Explicit

Private Sub PrintAllPagesX(x As Byte)
  Dim n As Integer
  For n = x to Worksheets.Count Step x
    Worksheets(n).Printout
  Next n
End Sub

Sub Essai()
  PrintAllPagesX 4
End Sub


Dans les 2 macros, si tu es sûr(e) d'avoir moins de 256 onglets,
tu peux remplacer « n As Integer » par « n As Byte ».

Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».

Cordialement.  😊
 
0
Flojo05 Messages postés 9 Date d'inscription lundi 3 octobre 2016 Statut Membre Dernière intervention 10 octobre 2016
3 oct. 2016 à 16:44
Je suis désolée mais je ne comprend rien ! Je dois remplacer x par mon n° de page ?
Et si je veux changer de n° de page, est-ce que je dois obligatoirement retourner et modifier ma macro ?
0
Utilisateur anonyme > Flojo05 Messages postés 9 Date d'inscription lundi 3 octobre 2016 Statut Membre Dernière intervention 10 octobre 2016
Modifié par albkan le 3/10/2016 à 17:37
 
Tu n'as pas précisé de quel code VBA il s'agit ! Mais dans les 2 codes,
tu dois seulement changer la ligne de la sub Essai(), comme suit :

Si c'est pour le 1er code :
a) Pour onglet 5, page 3 : PrintPageX 5, 3
b) Pour onglet 3, page 8 : PrintPageX 3, 8

Si c'est pour le 2ème code :
Pour imprimer la 6ème page de chaque onglet : PrintAllPagesX 6

Tu as bien mis le code VBA dans Module1, n'est-ce-pas ? Et un seul
des 2 codes à la fois, selon ce que tu veux faire !

Tu peux aussi ajouter un InputBox pour les données onglet et page ;
modifications des 2 subs Essai() comme ci-dessous.

Pour le 1er code VBA :


Sub Essai()
  Dim ongletX As Integer, pageX As Byte, chn As String
  Do
    chn = InputBox("Onglet n° : "): ongletX = Val(chn)
  Loop Until ongletX >= 1 And ongletX <= 45
  Do
    chn = InputBox("Page n° : "): pageX = Val(chn)
  Loop Until pageX >= 1 And pageX <= 12
  PrintPageX ongletX, pageX
End Sub



Pour le 2ème code VBA :


Sub Essai()
  Dim pageX As Byte, chn As String
  Do
    chn = InputBox("Page n° : "): pageX = Val(chn)
  Loop Until pageX >= 1 And pageX <= 12
  PrintAllPagesX pageX
End Sub


Attention : pour les 2 codes VBA, laisse telle que la Private Sub !

Si ton problème est réglé, n'oublies pas de mettre le sujet en résolu.  😉
Sinon, donnes-moi plus de précisions sur ce qui ne vas pas.  😊
 
0
Flojo05 Messages postés 9 Date d'inscription lundi 3 octobre 2016 Statut Membre Dernière intervention 10 octobre 2016
Modifié par Flojo05 le 4/10/2016 à 12:11
Albkan, j'ai bien une fenêtre qui s'ouvre pour me demander le n° de page à imprimer, mais cela imprime quand même toutes les pages de la dernière feuille alors que c'était la première qui était selectionnée.
Je te confirme que je veux bien imprimer la page x de toutes les feuilles donc le 2° code.
Petit complément d'info, mon nombre de feuilles est variable :-)
0
Flojo05 Messages postés 9 Date d'inscription lundi 3 octobre 2016 Statut Membre Dernière intervention 10 octobre 2016
4 oct. 2016 à 11:58
Après d'autres essais j'ai l'impression que le chiffre que j'inscris dans la boite de dialogue qui s'ouvre correspond plus au n° de la feuille. J'ai fait un test avec le 2 et le 3 (censés être les numéros de page) et c'est en fait toutes les pages de la 2° ou 3° feuille qui s'impriment.
Lorsque je tape 1 par contre, toutes les pages de toutes les feuilles s'impriment !!!
Je suis larguée
0
Utilisateur anonyme > Flojo05 Messages postés 9 Date d'inscription lundi 3 octobre 2016 Statut Membre Dernière intervention 10 octobre 2016
5 oct. 2016 à 07:21
 
Réponse à ton message #4

Merci d'avoir précisé que tu veux imprimer la page x de toutes les feuilles ;
donc oui, il s'agit bien du 2ème code VBA. Tu as précisé aussi en autre info
que ton nombre de feuilles est variable ; c'est évidemment une indication
bien utile, même si le code VBA en tient déjà compte avec l'instruction
Worksheets.Count : ça retourne le nombre de feuilles du classeur.

C'est normal que tu n'aies pas eu le résultat attendu, car j'ai fait une
grosse erreur : j'ai vu ta demande, puis j'ai pensé à la formule
12 * (n - 1) + 4, et ensuite, j'ai bêtement utilisé Worksheets(x) qui est
pour la feuille d'un classeur et non pas pour une des pages
de cette feuille ! Désolé, mea culpa !  😞

Je vais maintenant répondre à ton message #5.  😊
 
0