Créer et nommer des feuilles auto excel

Résolu
pygos Messages postés 185 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention  
 
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 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
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   Statut Membre Dernière intervention  
 
En supprimant les autres onglets, cela fonctionne.....

Merci pour tout trés efficace

Cordialement,
0
simkmil Messages postés 481 Date d'inscription   Statut Membre Dernière intervention   35 > michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention  
 
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
 
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 2943 Date d'inscription   Statut Membre Dernière intervention   1 389
 
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   Statut Membre Dernière intervention  
 
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 382 Date d'inscription   Statut Membre Dernière intervention   22
 
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   Statut Membre Dernière intervention  
 
Merci pour ton aide .

Cordialement,
0