Forum Clubic

Indiquer le nombre de copie sous excel

Bonjour.
Voila mon probleme et que je voudrais imprimer plusieurs copie d’un meme fichier mais que en bas de chaque copie j’ai le numero de la copie.
Donc si je fait 50 copie je doit me retrouver avec 50 feuilles avec en bas un chiffre entre 1 et 50.
J’espere que ma demande es asse claire.
Merci de vos futur reponse

Bonjour
pour quelle version
Version 2000-2003
regarde ceci
www.lino.com…


Excel 2007 [www.lecompagnon.info...](http://www.lecompagnon.info/excel2007/index.html)

c’est pour excel 2000.
Sur ton site je trouve comment numeroter les differente pages, la je veut que chaque copie es sont propre numero(a moin que je n’es pas bien vue ce qui etait marquer) Merci quand meme de ta reponse

Quel code emploies-tu pour lancer l’impression de tes 50 exemplaires ?

code?
Je fait fichier - imprimer et je met X en nombre de copie (X etant le nombre de copie necessaire)

Non, là ça ne pourra pas marcher
A ce moment là, la fonction de répétition est au niveau de windows, pas d’excel, donc tu auras 50 fois exactement la même chose.
Ce qu’il faut que tu fasses, c’est faire une macro d’impression personnalisée, que tu pourras associer à un bouton ou à une nouvelle entrée de ton menu.
Cette macro te demandera le nombre de copies, et lancera une boucle
Cette boucle mettra à jour le numéro de page (en fonction de l’index de boucle) puis lancera l’impression d’une seule page.

je voie ou sa se fait, mais pas comment sa se fait.
Pourrait tu etre plus claire? ou me donner un exemple? ou une aide?

Il faut y aller pas à pas

  • d’abord tu fais une macro qui imprime une page, et tu l’associes à un bouton
  • ensuite, tu ajoutes à cette fonction le forçage du numéro de page (dans un premier temps tu le fixes par programme)
  • puis tu ajoutes la question sur la boucle, et enfin la boucle elle même

Pour la première partie, rien de difficile, il suffit de lancer une macro en mode apprentissage et d’en nettoyer ensuite le code.
Pour la suite, il suffit de dire où tu en es et ce qui te bloque et tu trouveras quelqu’un pour te guider

comme tu l’as dit la premiere es pas difficile mais j’avous que je suis deja bloquer a la deuxieme :frowning: (je suis un cas desesperer)
comment ajouter quelquechose a la macro et comment mettre le forcage de numero de page?

Voila ma macro actuel:

Sub Macro3()

’ Macro3 Macro
’ test


ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub
Edité le 05/09/2008 à 13:12

Fais une nouvelle macro enregistrée, cette fois ci pour fichier > Mise en page
Dans cette mise en page, tu mets la présentation que tu veux pour le numero de page (par en-tête ou pied de page personnalisé)
Tu l’arrêtes, tu l’édites, et tu prends les lignes significatives que tu colles dans ta première macro, au dessus de l’impression proprement dite.

Tu testes et tu donnes ton code et le résultat que ça te donne

voila ce que sa donne:

Sub test()
With ActiveSheet.PageSetup
.PrintTitleRows = “”
.PrintTitleColumns = “”
End With
ActiveSheet.PageSetup.PrintArea = “”
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = “”
.RightHeader = “”
.LeftFooter = “&P”
.CenterFooter = “”
.RightFooter = “”
.LeftMargin = Application.InchesToPoints(0.78740157480315)
.RightMargin = Application.InchesToPoints(0.78740157480315)
.TopMargin = Application.InchesToPoints(0.984251968503937)
.BottomMargin = Application.InchesToPoints(0.984251968503937)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
End Sub

Sa m’imprime donc 1 feuille avec le numero en bas a droite.
Reste donc que a applaiquer sa a toute les copies…
C’est quoi la prochaine consignes?

En fait, il ne s’agit pas de consignes c’est juste pour te guider un peu.
Ce qui m’étonne, c’est que le numéro s’imprime en bas à droite, alors qu’on lit
.LeftFooter = “&P”
.RightFooter = “”
(c’est à cause de ce genre de truc qu’il faut y aller doucement)

tu es sûr de ton coup ?

edit: comment tu fais pour lancer ta macro ?
Edité le 05/09/2008 à 14:45

erf c’est juste moi qui es male ecrit, c’est coter gauche.
Pour lancer la macro, je fait outils-macros-lancer la macro et je choisie ma macro

ok, pas de pb si ça s’inscrit bien à gauche
Ce qu’il te reste à faire, c’est remplacer le “&P” qui est synonyme de page courante, par une variable que tu feras évoluer.
Disons que notre variable s’appelle NPage
ton programme complet devrait ressembler à ceci :

Sub test()
Rep = InputBox("Copie multiple", "Nombre de pages à imprimer", 1)
If Rep < 1 Then Exit Sub
For NPage = 1 To Rep
With ActiveSheet.PageSetup
.PrintTitleRows = ""
.PrintTitleColumns = ""
End With
ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = NPage
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.78740157480315)
.RightMargin = Application.InchesToPoints(0.78740157480315)
.TopMargin = Application.InchesToPoints(0.984251968503937)
.BottomMargin = Application.InchesToPoints(0.984251968503937)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Next
End Sub

Merci sa marche nickel

Desoler de relancer le sujet mais j’ai un soucis suite a cette macro, quand je lance l’impression sa me mange une partie du tableau mais pas lors d’une impression normale, comment changer les marges d’impression de la macro?

C’est parce que tu forces les valeurs de marge aux valeurs qui t’on servi à enregistrer ta macro
.LeftMargin = Application.InchesToPoints(0.78740157480315)
.RightMargin = Application.InchesToPoints(0.78740157480315)
.TopMargin = Application.InchesToPoints(0.984251968503937)
.BottomMargin = Application.InchesToPoints(0.984251968503937)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)

tu peux soit essayer de les supprimer, soit de modidier leur valeur, en particulier jouer sur les hauteurs de haut et de pied de page

voila ce que sa me donne.

Sub test()
Rep = InputBox(“Copie multiple”, “Nombre de pages à imprimer”, 1)
If Rep < 1 Then Exit Sub
For NPage = 1 To Rep
With ActiveSheet.PageSetup
.PrintTitleRows = “”
.PrintTitleColumns = “”
End With
ActiveSheet.PageSetup.PrintArea = “”
With ActiveSheet.PageSetup
.LeftHeader = “”
.CenterHeader = “”
.RightHeader = NPage
.LeftFooter = “”
.CenterFooter = “”
.RightFooter = “”
.LeftMargin = Application.InchesToPoints(0.78740157480315)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlPortrait
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 100
.PrintErrors = xlPrintErrorsDisplayed
End With

Merci de votre aide, juste encore un ptit truc, peut on maitre la taille de Npage en plus gros et en gras, car j’ai essayer mais sa m’affiche Npage sur ma feuille et non le numero de la page
Edité le 19/09/2008 à 16:31

j’ai editer mon post presedent, est’il possible de changer la taille du numero de page, tout mes essaie se sont solder par un echec

ca devrait donner quelque chose du genre
.RightHeader = “&”“Arial,Gras”"&16&" + NPage
(16 pour la taille, mais tu peux changer)