OVH Cloud OVH Cloud

Nombre de pages

1 réponse
Avatar
mireille
Bonjour =E0 tous, et merci
Je souhaiterais "pi=E9ger" le nombre de pages d'un onglet,=20
mais je ne sais pas o=F9 le chercher.
En gros j'ai un classeur de 60 feuilles environ, dont=20
certaines contiennent plusieurs pages et je voudrais=20
quand j'imprime, paginer correctement. Tout baigne quand=20
j'imprime avec la fonction Feuilles S=E9lectionn=E9s pour=20
tous les onglets qui ne comprennent qu'une page, mais d=E8s=20
que j'ai un onglet qui a plusieurs pages, l'onglet=20
suivant est d=E9cal=E9.
Je souhaite donc faire une macro qui intercepterait ce=20
nombre de pages et l'incr=E9menterait pour la feuille=20
suivante.
J'esp=E8re que j'ai =E9t=E9 claire.
Mireille

1 réponse

Avatar
Frédéric Sigonneau
Bonjour,

Pour récupérer le nombre de pages imprimables à partir d'une feuille de calcul
le plus 'fiable', AMA, est d'utiliser une macro Excel 4.0.
Dans ton classeur perso.xls (après l'avoir affiché), ajoute une feuille Macro
Excel 4.0 (clic doit sur un onglet puis Insérer) et recopie ce code dans sa
colonne A à partir de A1 :

'debut copie--------------------
NbPages

=VOLATILE()
=POSER.NOM("Doc";LIRE.CELLULE(62;CELLULE.APPELANTE()))
=POSER.NOM("VP";LIRE.DOCUMENT(64;Doc))
=SI(ESTNA(VP))
=POSER.NOM("VPC";1)
=POSER.NOM("VPN";0)
=SINON()
=POSER.NOM("VPC";COLONNES(VP)+1)
=POSER.NOM("VPN";EQUIV(LIGNE(CELLULE.APPELANTE());VP))
=SI(ESTNA(VPN))
=POSER.NOM("VPN";0)
=FIN.SI()
=FIN.SI()
=POSER.NOM("HP";LIRE.DOCUMENT(65;Doc))
=SI(ESTNA(HP))
=POSER.NOM("HPC";1)
=POSER.NOM("HPN";0)
=SINON()
=POSER.NOM("HPC";COLONNES(HP)+1)
=POSER.NOM("HPN";EQUIV(COLONNE(CELLULE.APPELANTE());HP))
=SI(ESTNA(HPN))
=POSER.NOM("HPN";0)
=FIN.SI()
=FIN.SI()
=RETOUR(SI(LIRE.DOCUMENT(61;Doc)=1;VPC*HPN+VPN;HPC*VPN+HPN)+1)
'fin copie------------------------

Ensuite, dans le menu InsertionNomDéfinir sélectionne Fonction dans la zone
Macro et NbPages dans la zone Noms dans le classeur (mais normalement c'est déjà
le choix par défaut) et clique sur OK.
A partir de maintenant la fonction NbPages (ou perso.xls!NbPages) est disponible
dans les fonctions personnalisées d'Excel. Tu peux écrire dans une cellule d'un
feuille de calcul
=NbPages()
ou
=perso.xls!NbPages()
pour connaître le nombre de pages imprimables de cette feuille et réutiliser le
contenu de cette cellule en VBA.

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !


Bonjour à tous, et merci
Je souhaiterais "piéger" le nombre de pages d'un onglet,
mais je ne sais pas où le chercher.
En gros j'ai un classeur de 60 feuilles environ, dont
certaines contiennent plusieurs pages et je voudrais
quand j'imprime, paginer correctement. Tout baigne quand
j'imprime avec la fonction Feuilles Sélectionnés pour
tous les onglets qui ne comprennent qu'une page, mais dès
que j'ai un onglet qui a plusieurs pages, l'onglet
suivant est décalé.
Je souhaite donc faire une macro qui intercepterait ce
nombre de pages et l'incrémenterait pour la feuille
suivante.
J'espère que j'ai été claire.
Mireille