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
Utilisateur anonyme - 10 oct. 2016 à 22:46
A voir également:
- Comment imprimer la même page de plusieurs onglets
- Comment supprimer une page sur word - Guide
- Comment imprimer un tableau excel sur une seule page - Guide
- Comment imprimer en a5 - Guide
- Restaurer onglets chrome - Guide
- Word numéro de page 1/2 - Guide
1 réponse
Utilisateur anonyme
Modifié par albkan le 3/10/2016 à 12:38
Modifié par albkan le 3/10/2016 à 12:38
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.
Voici une autre macro pour imprimer toutes les pages 4
de chaque onglet, avec x = 4 :
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. 😊
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. 😊
3 oct. 2016 à 16:44
Et si je veux changer de n° de page, est-ce que je dois obligatoirement retourner et modifier ma macro ?
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 :
Pour le 2ème code VBA :
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. 😊
Modifié par Flojo05 le 4/10/2016 à 12:11
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 :-)
4 oct. 2016 à 11:58
Lorsque je tape 1 par contre, toutes les pages de toutes les feuilles s'impriment !!!
Je suis larguée
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. 😊