DUPLIQUER DES FEUILLES A PARTIR D'UNE LISTE
Résolu/Fermé
Cat&Dom
-
12 nov. 2008 à 13:33
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 25 nov. 2008 à 06:55
Bidouilleu_R Messages postés 1181 Date d'inscription mardi 27 mai 2008 Statut Membre Dernière intervention 12 juillet 2012 - 25 nov. 2008 à 06:55
A voir également:
- DUPLIQUER DES FEUILLES A PARTIR D'UNE LISTE
- Liste déroulante excel - Guide
- Dupliquer ecran - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Comment faire un livret avec des feuilles a4 - Guide
12 réponses
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
12 nov. 2008 à 13:53
12 nov. 2008 à 13:53
je comprends en partie le besoin mais cela nécessite quelques précisions
1) ou se trouve la liste
2) comment s'appelle la feuille , même nom que celui de la liste ou faut-il ajouter qqchose
3) comment doit s'appellera la feuille nouvellement créée.
4) y a -t-til un critère pour la duplication
beaucoup d'interrogation mais c'est possible! via un module vba
1) ou se trouve la liste
2) comment s'appelle la feuille , même nom que celui de la liste ou faut-il ajouter qqchose
3) comment doit s'appellera la feuille nouvellement créée.
4) y a -t-til un critère pour la duplication
beaucoup d'interrogation mais c'est possible! via un module vba
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
14 nov. 2008 à 09:27
14 nov. 2008 à 09:27
' voilà le code
Tu places un bouton sur la feuille "Personnel"
qui va executer le module VBA suivant.
Sub Création_En_Fonction_De_Liste()
Dim NbFeuilles As Integer 'variable pour compter les feuilles
Dim C As Variant 'contenant chaque élément de la liste
NbFeuilles = Sheets.Count
' je suppose que la liste est en "A7:A10" sur la feuille personnel
application.ScreenUpdating=False
For Each C In Sheets("Personnel").Range("A7:A10")
NbFeuilles = Sheets.Count
Sheets("maquette").Copy After:=Sheets(NbFeuilles)
Sheets("maquette (2)").Name = C
Next
Sheets("Personnel").select ' on revient sur la feuille personnel
application.ScreenUpdating=True
End Sub
si cela te convient... bonne journée ... n'oublie pas de fermer ta demande merci
Tu places un bouton sur la feuille "Personnel"
qui va executer le module VBA suivant.
Sub Création_En_Fonction_De_Liste()
Dim NbFeuilles As Integer 'variable pour compter les feuilles
Dim C As Variant 'contenant chaque élément de la liste
NbFeuilles = Sheets.Count
' je suppose que la liste est en "A7:A10" sur la feuille personnel
application.ScreenUpdating=False
For Each C In Sheets("Personnel").Range("A7:A10")
NbFeuilles = Sheets.Count
Sheets("maquette").Copy After:=Sheets(NbFeuilles)
Sheets("maquette (2)").Name = C
Next
Sheets("Personnel").select ' on revient sur la feuille personnel
application.ScreenUpdating=True
End Sub
si cela te convient... bonne journée ... n'oublie pas de fermer ta demande merci
Bonsoir,
D'abord un grand merci pour ta réponse.
Comme tu me l'as dit, j'ai crée un bouton pour lancer l'exécution du programme. Mais lorsque je le lance, en premier lieu j'ai une fenêtre qui s'ouvre avec une croix rouge et les choix suivants : "ok" ou "aide"
Lorsque je réponds "ok", le programme s'exécute mais créé une feuille "maquette2" à la suite de toutes les feuilles nominatives.
Je suppose que tu vas me trouver un remède à cela en un rien de temps
Encore merci
Cordialement.
Catherine
D'abord un grand merci pour ta réponse.
Comme tu me l'as dit, j'ai crée un bouton pour lancer l'exécution du programme. Mais lorsque je le lance, en premier lieu j'ai une fenêtre qui s'ouvre avec une croix rouge et les choix suivants : "ok" ou "aide"
Lorsque je réponds "ok", le programme s'exécute mais créé une feuille "maquette2" à la suite de toutes les feuilles nominatives.
Je suppose que tu vas me trouver un remède à cela en un rien de temps
Encore merci
Cordialement.
Catherine
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
16 nov. 2008 à 22:27
16 nov. 2008 à 22:27
Peux-tu me dire ce que dit la fenêtre?
ce qu'il y a d'écrit dans la barre de tite.
je viens de vérifier sur un autre pc tout marche bien.
sur la feuille personnel je mets la liste de A7: A10 si tu la change de place change aussi dans le module comme indiqué
puis je place un bouton Affichage/barre d'outils/formulaire puis click sur le bouton
Click de droit sur le bouton affecter à la macro sélectionner la macro click ok et c'est fini
La macro va crée une copie de la feuille maquette elle s'appelle donc maquette (2) puis elle est renommée selon la liste. si tu n'as pas adressée ta liste seule maquette (2) sera crée.
A +
ce qu'il y a d'écrit dans la barre de tite.
je viens de vérifier sur un autre pc tout marche bien.
sur la feuille personnel je mets la liste de A7: A10 si tu la change de place change aussi dans le module comme indiqué
puis je place un bouton Affichage/barre d'outils/formulaire puis click sur le bouton
Click de droit sur le bouton affecter à la macro sélectionner la macro click ok et c'est fini
La macro va crée une copie de la feuille maquette elle s'appelle donc maquette (2) puis elle est renommée selon la liste. si tu n'as pas adressée ta liste seule maquette (2) sera crée.
A +
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir,
Dans la barre de titre de la fenêtre, il y a écrit : MICROSOFT VISUAL BASIC, en-dessous, une croix rouge et 400 et enfin "ok" et "Aide"
J'ai bien étendu la plage de ma liste dans le code.
Une feuille est bien créée pour chacun de mes salariés, mais j'en ai une supplémentaire qui est nommée "Maquette2"
Je pense qu'il y a une feuille "Maquette2" de créer à partir du mommnent ou le système arrive sur une ligne vide, car j'ai étendu la plage de ma liste de A2:A100
Cordialement
Catherine
Dans la barre de titre de la fenêtre, il y a écrit : MICROSOFT VISUAL BASIC, en-dessous, une croix rouge et 400 et enfin "ok" et "Aide"
J'ai bien étendu la plage de ma liste dans le code.
Une feuille est bien créée pour chacun de mes salariés, mais j'en ai une supplémentaire qui est nommée "Maquette2"
Je pense qu'il y a une feuille "Maquette2" de créer à partir du mommnent ou le système arrive sur une ligne vide, car j'ai étendu la plage de ma liste de A2:A100
Cordialement
Catherine
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
18 nov. 2008 à 08:37
18 nov. 2008 à 08:37
je te règle ce petit problème. pour "maquette 2"
et je crois savoir pourquoi, je regarde et je corrige.
En fait on a pas le droit de nommer une feuille avec un nom vide or si tu as des vides c'est ce qui se produit.
je corrige et tu seras sauvé(e).
Roger
et je crois savoir pourquoi, je regarde et je corrige.
En fait on a pas le droit de nommer une feuille avec un nom vide or si tu as des vides c'est ce qui se produit.
je corrige et tu seras sauvé(e).
Roger
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
18 nov. 2008 à 08:44
18 nov. 2008 à 08:44
Remplace le code VBA par celui-ci
je n'ai pas eu d'erreur pendant le test.
tiens moi au courant pour savoir si ça marche.
et si c'est ok pense à mettre résolu.
roger
Sub Création_En_Fonction_De_Liste()
Dim NbFeuilles As Integer 'variable pour compter les feuilles
Dim C As Variant 'contenant chaque élément de la liste
NbFeuilles = Sheets.Count
' je suppose que la liste est en "A2:A1000" sur la feuille personnel
' selon ta dernière intervention
For Each C In Sheets("Personnel").Range("A2:A1000") ' pour chaque cellule dans la plage "A2 jusqu'à 100
If Not IsEmpty(C) Then ' si l'élément de la cellule n'est pas vide
NbFeuilles = Sheets.Count
Sheets("maquette").Copy After:=Sheets(NbFeuilles)
Sheets("maquette (2)").Name = C
End If
Next
Application.ScreenUpdating = True
End Sub
je n'ai pas eu d'erreur pendant le test.
tiens moi au courant pour savoir si ça marche.
et si c'est ok pense à mettre résolu.
roger
Sub Création_En_Fonction_De_Liste()
Dim NbFeuilles As Integer 'variable pour compter les feuilles
Dim C As Variant 'contenant chaque élément de la liste
NbFeuilles = Sheets.Count
' je suppose que la liste est en "A2:A1000" sur la feuille personnel
' selon ta dernière intervention
For Each C In Sheets("Personnel").Range("A2:A1000") ' pour chaque cellule dans la plage "A2 jusqu'à 100
If Not IsEmpty(C) Then ' si l'élément de la cellule n'est pas vide
NbFeuilles = Sheets.Count
Sheets("maquette").Copy After:=Sheets(NbFeuilles)
Sheets("maquette (2)").Name = C
End If
Next
Application.ScreenUpdating = True
End Sub
Bonjour,
bRAVO, c'est super, ça marche, mais j'aimerais rajouter une petite fonction supplémentaire, je voudrais que sur la maquette, en "D1", viennent s'insérer le nom de la feuille. Ensuite je clos le sujet.
J'abuse un peu, mais j'ai vraiment du mal à créer une macro aussi complexe.
Tout mes remerciements.
Cordialement
Catherine
bRAVO, c'est super, ça marche, mais j'aimerais rajouter une petite fonction supplémentaire, je voudrais que sur la maquette, en "D1", viennent s'insérer le nom de la feuille. Ensuite je clos le sujet.
J'abuse un peu, mais j'ai vraiment du mal à créer une macro aussi complexe.
Tout mes remerciements.
Cordialement
Catherine
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
22 nov. 2008 à 09:41
22 nov. 2008 à 09:41
Sub Création_En_Fonction_De_Liste()
Dim NbFeuilles As Integer 'variable pour compter les feuilles
Dim C As Variant 'contenant chaque élément de la liste
NbFeuilles = Sheets.Count
' je suppose que la liste est en "A2:A1000" sur la feuille personnel
' selon ta dernière intervention
For Each C In Sheets("Personnel").Range("A2:A1000") ' pour chaque cellule dans la plage "A2 jusqu'à 100
If Not IsEmpty(C) Then ' si l'élément de la cellule n'est pas vide
NbFeuilles = Sheets.Count
Sheets("maquette").Copy After:=Sheets(NbFeuilles)
Sheets("maquette (2)").Name = C
' Ici le nom est contenu dans C
range("D1")=C
End If
Next
Application.ScreenUpdating = True
End Sub
Dim NbFeuilles As Integer 'variable pour compter les feuilles
Dim C As Variant 'contenant chaque élément de la liste
NbFeuilles = Sheets.Count
' je suppose que la liste est en "A2:A1000" sur la feuille personnel
' selon ta dernière intervention
For Each C In Sheets("Personnel").Range("A2:A1000") ' pour chaque cellule dans la plage "A2 jusqu'à 100
If Not IsEmpty(C) Then ' si l'élément de la cellule n'est pas vide
NbFeuilles = Sheets.Count
Sheets("maquette").Copy After:=Sheets(NbFeuilles)
Sheets("maquette (2)").Name = C
' Ici le nom est contenu dans C
range("D1")=C
End If
Next
Application.ScreenUpdating = True
End Sub
Bonsoir,
En rajoutant simplement range("D1") = C après Sheets("maquette (2)").Name = C, ça ne fonctionne pas.
Avec l'aide d'un livre de formation, j'ai fait plusieurs tentatives sans succès, dont les deux essais suivants :
Sheets("maquette (2)").Range("D1") = C au lieu de range("D1") = C
C.Cells(1, 4) = C au lieu de range("D1") = C
Ca ne fonctionne toujours pas, je ne suis vraiment pas douée, j'aurai bien aimé arriver à me débrouiller seule. Je te sollicite donc de nouveau.
Merci d'avance
Cordialement
Catherine
En rajoutant simplement range("D1") = C après Sheets("maquette (2)").Name = C, ça ne fonctionne pas.
Avec l'aide d'un livre de formation, j'ai fait plusieurs tentatives sans succès, dont les deux essais suivants :
Sheets("maquette (2)").Range("D1") = C au lieu de range("D1") = C
C.Cells(1, 4) = C au lieu de range("D1") = C
Ca ne fonctionne toujours pas, je ne suis vraiment pas douée, j'aurai bien aimé arriver à me débrouiller seule. Je te sollicite donc de nouveau.
Merci d'avance
Cordialement
Catherine
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
23 nov. 2008 à 14:00
23 nov. 2008 à 14:00
oups!
grosse bêtise de ma part
range("D1")=C
activesheets.range("D1").value=C
' on écrit sur la feuile active tes solutions pourraient fonctionner si tu dis sur quelle feuille
Donc activesheet.cells(1,4).value=C
ou activesheet.range("D1").value=C
ou encore sheets(C).range("D1").value=C
Désolé
grosse bêtise de ma part
range("D1")=C
activesheets.range("D1").value=C
' on écrit sur la feuile active tes solutions pourraient fonctionner si tu dis sur quelle feuille
Donc activesheet.cells(1,4).value=C
ou activesheet.range("D1").value=C
ou encore sheets(C).range("D1").value=C
Désolé
Bonjour,
Il ne se passe toujours rien en "D1" et j'ai à nouveau le message "Microsoft visual basic" accompagné d'une croix rouge.
Merci encore
Cordialement
Catherine
Il ne se passe toujours rien en "D1" et j'ai à nouveau le message "Microsoft visual basic" accompagné d'une croix rouge.
Merci encore
Cordialement
Catherine
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
>
Cat&Dom
24 nov. 2008 à 19:21
24 nov. 2008 à 19:21
tout le plaisir est pour moi.
en cas de probleme repasse sur le forum.
pense à mettre résolu.
Bon travail et bon courage
en cas de probleme repasse sur le forum.
pense à mettre résolu.
Bon travail et bon courage
Bonsoir,
Je ne vois pas de case à cocher pour modifier le statut de la discussion.
Comment dois-je faire ?
Merci
Cordialement
Catherine
Je ne vois pas de case à cocher pour modifier le statut de la discussion.
Comment dois-je faire ?
Merci
Cordialement
Catherine
Bidouilleu_R
Messages postés
1181
Date d'inscription
mardi 27 mai 2008
Statut
Membre
Dernière intervention
12 juillet 2012
294
25 nov. 2008 à 06:55
25 nov. 2008 à 06:55
Dans ton premier post je crois je ne suis plus sûr
im e semble qu'il y a un bouton modifier et tu peux changer le statut.
Ce la fait longtemps que je n'ai pas fait ça... Aller bonne journée.
im e semble qu'il y a un bouton modifier et tu peux changer le statut.
Ce la fait longtemps que je n'ai pas fait ça... Aller bonne journée.
12 nov. 2008 à 19:42
Tout d'abord merci de t'interesser à mon cas.
1) La liste (dans une feuille que je nommerai "Personnel") peut se trouver dans le même fichier que celui dans lequel je veux dupliquer la feuille que je nommerai "maquette"
2) La première feuille dupliquée doit porter le nom de la première personne de la liste, la seconde, le nom de la deuxième personne de la liste et ainsi de suite. C'est-à-dire que si j'ai 50 personnes dans ma liste, il faudra que la "maquette" soit dupliquée 50 fois.
3) Pour l'instant je ne prévois pas de critère de duplication
Je pense qu'effectivement, ça devra passer par un code VBA avec une structure en boucle.
J'ai commencé à m'interresser au VBA, mais j'ai un lâcher prise par manque de temps.