Créer et nommer des feuilles auto excel

Résolu/Fermé
pygos Messages postés 185 Date d'inscription vendredi 5 septembre 2008 Statut Membre Dernière intervention 3 mars 2021 - 15 oct. 2010 à 10:54
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 7 janv. 2016 à 09:45
Bonjour,

Je souhaite à partir d'un modèle de feuille (par exemple :Modèle S),
créer en une seule fois 52 feuilles qui seront nommés :


S1
S2
S3
.
.
.
S52

en gardant les informations (format, images, données du modèle)


2ème question :

Mes futures feuilles (S1, S2,S3, .....S52) contiennent des dates dans les cellules
A1 à E1
exemple :( feuille "S41") A1 =11/10/2010 B1=12/10/2010 c1=13/10/2010......

S41 correspond à la semaine 41 avec les dates associées...

Quel serait la formule ou macro qui déterminerais automatiquement une date dans chaque cellule par rapport au nom de la feuille ? pour comme résultat l'exemple ci-dessus....


Merci d'avance,

Pygos


A voir également:

4 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
15 oct. 2010 à 17:12
Bonjour pygos

Sub creer_annee()
Application.ScreenUpdating = False
For cptr = 2 To 53
   Sheets(1).Copy after:=Sheets(cptr - 1)
   Sheets(cptr).Name = "S" & cptr - 1
Next
End Sub
4
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
Modifié par michel_m le 17/10/2010 à 09:51
J'avais pas vu la 2° question (on est vendredi)
macro reprise en modification pour choix de l'année
donc

Option Explicit 
Const Annee As Integer = 2010 'choix de l'année 

Sub creer_annee() 
Dim cptr As Byte, jour As Byte 

Application.ScreenUpdating = False 

For cptr = 2 To 53 
    Sheets(1).Copy after:=Sheets(cptr - 1) 
    With Sheets(cptr) 
        .Name = "S" & cptr - 1 
         'date du lundi de la semaine créée 
        .Cells(1, 1) = 7 * (cptr - 1) + DateSerial(Annee, 1, 3) - Weekday(DateSerial(Annee, 1, 3)) - 5 
        For jour = 2 To 7 
            .Cells(1, jour) = .Cells(1, jour - 1) + 1 
        Next 
    End With 
Next 
End Sub



thread date du lundi de la semaine à partir d'un thread "evaluate" d'Alain Vallon (mpfe,excelabo)
0
pygos Messages postés 185 Date d'inscription vendredi 5 septembre 2008 Statut Membre Dernière intervention 3 mars 2021
18 oct. 2010 à 09:51
Bonjour, Michel


Merci pour ta réponse , c'est presque bon !

Je rencontre deux problèmes :

1 - Le programme bug à la semaine 46 (S46)

2 - La date proposé est 1900 et non 2010

Voici ce que j'ai saisi :
Option Explicit
Const Annee As Integer = 2010 'choix de l'année
Sub creer_Annee()
Dim cptr As Byte, jour As Byte
Application.ScreenUpdating = False
For cptr = 2 To 53
Sheets(1).Copy after:=Sheets(cptr - 1)
With Sheets(cptr)
.Name = "S" & cptr - 1
'date du lundi de la semaine créée
.Cells(1, 2) = 5 * (cptr - 1) + DateSerial(Annee, 1, 3) - Weekday(DateSerial(Annee, 1, 3)) - 5
For jour = 2 To 5
.Cells(1, jour) = .Cells(1, jour - 1) + 1
Next
End With
Next

End Sub

Un grand merci pour ton aide,

Cordialement,

Pygos
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 310
18 oct. 2010 à 11:22
Bonjour,

Surprenant! je viens de re-re-essayer et ca fonctionne sans bug 46 et date 2010...

ci joint ma maquette de travail

http://www.cijoint.fr/cjlink.php?file=cj201010/cijZMdJ4MM.xls
0
pygos Messages postés 185 Date d'inscription vendredi 5 septembre 2008 Statut Membre Dernière intervention 3 mars 2021
18 oct. 2010 à 13:42
En supprimant les autres onglets, cela fonctionne.....

Merci pour tout trés efficace

Cordialement,
0
simkmil Messages postés 473 Date d'inscription mardi 19 février 2008 Statut Membre Dernière intervention 25 novembre 2024 35 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
6 janv. 2016 à 15:59
Bonjour,
je reviens six ans plus tard sur ce problème.
Je suis en train de préparer également 52 feuilles nommées S1 à S52 et ta formule marche parfaitement. SAUF que pour cette année 2016, il me prend la semaine 1 le 28/12 au 3/1 alors que officiellement la semaine 1 débute le 4 janvier.
Comment changer cela ?
Pour autant que ma requête soit vue aussi longtemps après.
Merci
0
pépé35530
15 oct. 2010 à 11:28
Bonjour,

Pour créer tes 52 feuilles, il suffit, sous office 2007, de cliquer sur le bouton en haut à droite (bouton office), puis sur "options Excel" et dans l'onglet "standard" et enfin dans le champ "inclure ces feuilles" taper 52.

Ne pas oublier ensuite, une fois le classeur créé de revenir à l'option par défaut.

Pour la suite....
A+

pépé
0
pépé35530 Messages postés 2942 Date d'inscription vendredi 1 mai 2009 Statut Membre Dernière intervention 19 mars 2016 1 385
15 oct. 2010 à 14:10
Re...

Je ne sais pas exactement ce que tu souhaites construire, mais il faudrait peut-être repenser le problème. Pourquoi ne pas créer une feuille unique et utiliser ensuite un tableau croisé dynamique pour extraire ce que tu souhaites...

A+

pépé
0
pygos Messages postés 185 Date d'inscription vendredi 5 septembre 2008 Statut Membre Dernière intervention 3 mars 2021
15 oct. 2010 à 14:32
je dois créer 52 feuilles en automatique et au lieu de faire 52 fois sur la feuille modèle :

click droit - Déplacer ou Copier - cocher créer une copie

je souheterais une macro qui le fasse automatiquement et nommer les feuilles

S1, S2, S3.....etc

merci
0
aziz_alg80 Messages postés 383 Date d'inscription vendredi 12 février 2010 Statut Membre Dernière intervention 3 juin 2024 22
15 oct. 2010 à 18:59
Bonjour, j'ai qqchose à dire, je ne sais pas si ça va t'aider ou pas.
Comment créer automatiquement 52 feuilles à partir d'un modèle donné sans passer par la méthode " Déplacer ou copier --> Créer une copie " ....je ne sais pas.

Mais si tu crée les 52 feullies ( par n'importe qu'elle méthode) je te propose de:
1- Visualiser la feuille modèle (étant vièrge);
2- Maintenir la touche Shift enfoncée, et pointer tes 52 feuilles;
3- Lâcher la touche et éditer le moèle (dresser un tableau, mettre en forme des cellule, écrire des formules....);
4- Une fois le modèle est édité pointer sur n'importe qu'une feuille autre que la feuille modèle et elle a son tampon.
5- Il te reste à ajouter à chaque feuille ce qui lui est prarticulier.

j'èspère que cela va t'aider.
0
pygos Messages postés 185 Date d'inscription vendredi 5 septembre 2008 Statut Membre Dernière intervention 3 mars 2021
18 oct. 2010 à 09:55
Merci pour ton aide .

Cordialement,
0