Créer et nommer des feuilles auto excel

Résolu
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

4 réponses

  1. Contributeur
    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
    1. Contributeur
      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
    2. 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
    3. Contributeur
      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
    4. En supprimant les autres onglets, cela fonctionne.....

      Merci pour tout trés efficace

      Cordialement,
      0
    5. @michel_mBonjour,
      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
  2. 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
    1. 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
      1. 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
    2. 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
      1. Merci pour ton aide .

        Cordialement,
        0