Macro pour copier et numéroter les pages d'un carnet

  • Initiateur de la discussion Initiateur de la discussion Océane
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Océane

XLDnaute Impliqué
Bonjour le forum
J'ai besoin avec le classeur ci-joint d'une macro qui recopie la feuille 1 autant de fois qu'il est demandé dans la feuille numérotation, et qui numérote les reçus avec le principe décrit dans cette même feuille.
Une fois les feuilles imprimées cela me permettra avec un seul coup de massicot de réaliser 10 carnets de reçus numérotés dans l'ordre : 1 à 225.
Merci d'avance
 

Pièces jointes

Re : Macro pour copier et numéroter les pages d'un carnet

Salut Staple1600,
Salut Pierre,

Après modification de la feuille1, car l'utilisation de Zone de texte n'est pas forcément adéquate !

Mieux vaut utiliser, quand on le peut, des cellules fusionnées (quoique)

Voici ton fichier avec un petit bout de code 😉

A+
 

Pièces jointes

Re : Macro pour copier et numéroter les pages d'un carnet

Merci BrunoM45
C'est ce qu'il me fallait. Un détail : on se retrouve tjrs avec 2 feuilles de plus que la Cde, mais c'est pas grave qui peut le plus peut le moins.
Bonne fête de la musique.
 
Re : Macro pour copier et numéroter les pages d'un carnet

Salut PierreJean,
Pierre,
Merci BrunoM45
C'est ce qu'il me fallait. Un détail : on se retrouve tjrs avec 2 feuilles de plus que la Cde, mais c'est pas grave qui peut le plus peut le moins.
Bonne fête de la musique.
Avec le code on se retrouve effectivement avec, pour moi 1 feuille en trop !

Dans la feuille Numérotation on doit saisir le nombre de copie, sachant que le "Reçu 1" existe déjà, si on saisi 1, c'est que l'on veut le "Reçu 2", non !?

Bref, il faut modifier le code comme suit
Code:
Sub CopieFeuille()
  Dim NbF As Integer, Num As Integer
  NbF = Sheets("Numérotation").Range("G9").Value
  For Num = 0 To [B][COLOR=blue]NbF - 1
[/COLOR][/B]    Sheets("Feuil1").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Feuil" & 2 + Num
    ActiveSheet.Range("A1").Value = 2 + Num
    ActiveSheet.Range("A21").Value = 127 + Num
  Next
End Sub
Sinon si le nombre saisi = numéro de reçu, alors
Code:
Sub CopieFeuille()
  Dim NbF As Integer, Num As Integer
  NbF = Sheets("Numérotation").Range("G9").Value
  For Num = 0 To [COLOR=blue][B]NbF - 2
[/B][/COLOR]    Sheets("Feuil1").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Feuil" & 2 + Num
    ActiveSheet.Range("A1").Value = 2 + Num
    ActiveSheet.Range("A21").Value = 127 + Num
  Next
End Sub

Voilà 😉
 
Re : Macro pour copier et numéroter les pages d'un carnet

Bonjour à tous,
Bonjour aux amis du Fil 🙂,

Pierre, si je puis me permettre, lance une correction orthographique sur ta feuille 1.

Au plaisir de te croiser ici ou à Grenoble 😉

A++ aux amis 🙂
A+ à tous
 
Re : Macro pour copier et numéroter les pages d'un carnet

Re

Curieux !

Je viens de verifier et chez moi le fichier que je propose ne bugg pas
Pour ma culture personnelle (puisque tu es satisfait de la solution de Bruno) peux-tu me dire ou cela bugg ?
 
Re : Macro pour copier et numéroter les pages d'un carnet

Bonjour à tous,
Bonjour aux amis du Fil 🙂,

Pierre, si je puis me permettre, lance une correction orthographique sur ta feuille 1.

Au plaisir de te croiser ici ou à Grenoble 😉

A++ aux amis 🙂
A+ à tous

Tu m'as fait peur JCL, tu parles du i de certifiè, comme je me sais pas douer en orthographe.

Grenoble pourquoi pas ? j'envisage pour bientôt un voyage à Bourg d'Oisans...
 
Re : Macro pour copier et numéroter les pages d'un carnet

Salut PierreJean,
Pierre,

Avec le code on se retrouve effectivement avec, pour moi 1 feuille en trop !

Dans la feuille Numérotation on doit saisir le nombre de copie, sachant que le "Reçu 1" existe déjà, si on saisi 1, c'est que l'on veut le "Reçu 2", non !?

Bref, il faut modifier le code comme suit
Code:
Sub CopieFeuille()
  Dim NbF As Integer, Num As Integer
  NbF = Sheets("Numérotation").Range("G9").Value
  For Num = 0 To [B][COLOR=blue]NbF - 1
[/COLOR][/B]    Sheets("Feuil1").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Feuil" & 2 + Num
    ActiveSheet.Range("A1").Value = 2 + Num
    ActiveSheet.Range("A21").Value = 127 + Num
  Next
End Sub
Sinon si le nombre saisi = numéro de reçu, alors
Code:
Sub CopieFeuille()
  Dim NbF As Integer, Num As Integer
  NbF = Sheets("Numérotation").Range("G9").Value
  For Num = 0 To [COLOR=blue][B]NbF - 2
[/B][/COLOR]    Sheets("Feuil1").Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Feuil" & 2 + Num
    ActiveSheet.Range("A1").Value = 2 + Num
    ActiveSheet.Range("A21").Value = 127 + Num
  Next
End Sub
Voilà 😉

Dans mon esprit, c'est la solution 2 qui me fallait.
Mais on croit souvent à tord, qu'il y a transmission de pensée entre celui qui écrit et le lecteur.
L'expression orale et écrite, il y a tout un monde; à l'automne je vais faire un stage sur ce thème, je vous ferais part de mes impressions à l'époque.
Merci
 
Re : Macro pour copier et numéroter les pages d'un carnet

Re,

Puisque tu m'y invites.. 😛

Controle : Contrôle
Trésoriere : Trésorière
Chéque : Chèque
Piece : Pièce

Mais c'est juste pour rire, tu fais bien comme tu veux.
N'y vois qu'une façon de te croiser sur un Fil arf arf

A++
A+ à tous
 
Dernière édition:
Re : Macro pour copier et numéroter les pages d'un carnet

PierreJean Bonjour
J'ai cherché une solution pour te faire des copies d'écran, mais çà ne passe pas.
Voila le premier message que je reçois en laçant la macro

erreur d'exécution '2147024809 (80070057)'
Puis lorsque je lance le débugeur
il me surligne en jaune
Sheets(n).Shapes(nom).Select

En espérant que cela t'aide car pour moi le langage VBA ....
Bon dimanche
 
Re : Macro pour copier et numéroter les pages d'un carnet

Re

A moins d'une version Excel très differente de la mienne (Office 2000 Excel 9.0) , je ne comprends pas ce qu'il se passe

Puisque JCGL est dans le fil ...
Peut-il confirmer ou infirmer le Bug ?
Merci d'avance
Par ailleurs ,sachant que Oceane a une solution , je n'en voudrais a personne de laisser tomber
 
Re : Macro pour copier et numéroter les pages d'un carnet

Bonjour à tous


pierrejean

Même erreur chez moi
(J'ai mis 5 pour le nombre de feuilles
4 ont été créées
Le bug apparait à la 5ème
For m = 16 To 18
nom = "Text Box " & m
Sheets(n).Shapes(nom).Select
Selection.Formula = "Numérotation!D" & CInt(Replace(Sheets(n).Name, "Feuille", "")) + 1
With Selection.Font
.FontStyle = "Gras"
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

P
Réponses
18
Affichages
2 K
Philling
P
Retour