Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Créer onglet en fonction d'une liste

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 !

erwanhavre

XLDnaute Occasionnel
Bonsoir à tous
je cherche par le moyen par le biais d'une macro à créer un onglet pour chaque personnes de l'onglet liste du fichier en pj

en d'autres termes
  1. Je saisis ma liste dans l'onglet liste
  2. j'appuie sur le bouton pour créer autant d'onglet qu'il y à de personnes dans la liste en utilisant à chaque fois le modèle et en remplissant les champs de la liste
merci à tous
 

Pièces jointes

Salut,

Une idée :
VB:
Sub mlk()
Application.ScreenUpdating = False
Set wf = WorksheetFunction
nb = wf.CountA(Sheets("liste").Range("a:a")) - 1

Call initialisation

nb_sheet = 2
For i = 1 To nb
Sheets("Modele").Copy After:=Sheets(nb_sheet)
Call remplissage(i)
nb_sheet = nb_sheet + 1
Next i

End Sub

Avec les subroutines :
VB:
Sub initialisation()
' supprime tous les onglets exceptés "liste" et "Modele"
Application.DisplayAlerts = False
For Each s In Sheets
If InStrRev("liste_Modele", s.Name) = 0 Then s.Delete
Next s
End Sub

Sub remplissage(i)
' remplissage de la nouvelle feuille
nom = Sheets("liste").Range("a6").Offset(i, 0)
prenom = Sheets("liste").Range("b6").Offset(i, 0)
info1 = Sheets("liste").Range("c6").Offset(i, 0)
info2 = Sheets("liste").Range("d6").Offset(i, 0)
info3 = Sheets("liste").Range("e6").Offset(i, 0)
info4 = Sheets("liste").Range("f6").Offset(i, 0)

Sheets("Modele (2)").Name = nom
With Sheets(nom)
    .Range("b2") = nom
    .Range("b3") = prenom
    .Range("b4") = info1
    .Range("d2") = info2
    .Range("d3") = info3
    .Range("d4") = info4
End With
End Sub
 

Pièces jointes

bonjour j'ai essayé de l'adapter à mon projet mais je plante après la deuxieme page créé
voici mon code

qu'est ce qui cloche à votre avis

Sub mlk()
'Application.ScreenUpdating = False
Set wf = WorksheetFunction
nb = wf.CountA(Sheets("liste").Range("a:a")) - 1

Call initialisation

nb_sheet = 10
For i = 1 To nb
Sheets("Modèle").Copy After:=Sheets(nb_sheet)
Call remplissage(i)
nb_sheet = nb_sheet + 1
Next i

End Sub

Sub initialisation()
' supprime tous les onglets exceptés "liste" et "Modele"
Application.DisplayAlerts = False
For Each s In Sheets
If InStrRev("PARA_liste_Modèle_HS (pré)_HS_HS (pré) (DEF)_HS (DEF)_Navette_Navette (DEF)_navette def", s.Name) = 0 Then s.Delete
Next s
End Sub

Sub remplissage(i)
' remplissage de la nouvelle feuille
nom = Sheets("liste").Range("a4").Offset(i, 0)
prenom = Sheets("liste").Range("b4").Offset(i, 0)
info1 = Sheets("liste").Range("c4").Offset(i, 0)
info2 = Sheets("liste").Range("d4").Offset(i, 0)
info3 = Sheets("liste").Range("e4").Offset(i, 0)
info4 = Sheets("liste").Range("f4").Offset(i, 0)
info5 = Sheets("liste").Range("g4").Offset(i, 0)
info4 = Sheets("liste").Range("h4").Offset(i, 0)

Sheets("Modèle (2)").Name = nom
With Sheets(nom)
.Range("b3") = nom
.Range("b4") = prenom
.Range("b5") = info1
.Range("g4") = info2
.Range("g5") = info3
.Range("b6") = info4
.Range("a2") = info5
.Range("g6") = info6
End With
End Sub
 
c'est bon j'ai trouvé c'était un pb de nom (2 personne ayant le même nom)
j'ai trouvé une solution de contournement par contre arrivé à la fin de la liste il plante avec le modèle(2) il faut probablement un code pour stopper la boucle une fois la liste générée ?
 
Bonsoir Erwan,

Post #4 : peux-tu ecrire tes codes sous balises ? c'est illisible.

Post #5 : je ne suis pas sûr de comprendre le soucis ?

Peut-être sur cette variable
VB:
nb = wf.CountA(Sheets("liste").Range("a:a")) - 1

si ta feuille est différente du fichier exemple ?
sous cette ligne, rajoute :
VB:
nb = wf.CountA(Sheets("liste").Range("a:a")) - 1
MsgBox(nb)

ca te permettra de voir le nb dans un message box.
==> est-ce que cela correspond bien au nombre souhaité ?
 
- 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

Réponses
2
Affichages
204
Réponses
5
Affichages
295
Réponses
40
Affichages
1 K
Réponses
29
Affichages
1 K
Réponses
4
Affichages
136
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…