[VBA-Excel] Dater/Créer les feuilles.

Résolu
Bonjour. Je souhaiterais créer et par la même occasion dater les feuilles d'un documents excel.

Càd créer un fichier de 365 feuilles (366 pour les année bissextile) datée. et si possible avoir la même date dans une cellule de feuille.

Merci de votre aide
Configuration: Windows 2003
Firefox 2.0.0.3

6 réponses

  1. Merci bien.

    Mon template créé, ma première feuille nommée Summary pour suivre ta macro.

    Celà effectué, le déboggeur me donne une erreur à la ligne 3

    myName = DateAdd(d,int_i,"01/01/2007")

    Merci encore
    0
    1. dateAdd("D",int_i,...)

      le "D" pour Day, suivant ta version d'Excel, tu auras peut-être a rentrer "J" au lieu de D (Jour / Day)

      Irem
      0
      1. Merci ça marche bien mieux avec les " " ;).

        Par contre, maintenant j'ai une erreur d'execution '9'

        sur cette ligne :

        ThisWorkbook.Worksheets(myName).Cells(1, 3).Value = myName

        Désolé pour mon ignorance et merci encore
        0
        1. essaie avec
          ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count - 1).cells(1,3).value=myName

          en fait, je pointe sur la bonne feuille puis sur la cellule 1,3

          à toi de voir si elle est dispo.

          Cette ligne est uniquement là pour remplir la case dans la feuille, autrement le reste créé les feuilles au bon nom, pour vérifier ta config, vérifie le nom de la première feuille, s'il est bon il ne reste plus qu'a copier le nom dans la case..

          Irem
          0
          1. Oki ça marche mieu. jusqu'en aout-septembre lol

            La macro qui fonctionne :
            ___________________________

            For int_i=0 to 364 'ou 365 si tu veux
            ThisWorkbook.Worksheets(1).Copy Before:=Worksheets("Summary")
            myName = DateAdd("D",int_i,"01/01/2007")
            ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count - 1).Name = myName
            ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count - 1).cells(1,3).value=myName
            next int_i.

            __________________________

            Feuille 1 nommée : Template
            Feuille 2 nommée : Summary

            mercis bcp pour ton aide
            0
            1. Pour moi le plus simple,

              Tu pars sur un classeur avec deux feuilles, la première ou tu as le template que tu veux faire 365/366 fois, la seconde ou tu as un bouton qui declenche le script suivant :

              For int_i=0 to 364 'ou 365 si tu veux
              ThisWorkbook.Worksheets(1).Copy Before:=Worksheets("Summary")
              myName = DateAdd(d,int_i,"01/01/2007")
              ThisWorkbook.Worksheets(ThisWorkbook.Worksheets.Count - 1).Name = myName
              ThisWorkbook.Worksheets(myName).Cells(1, 3).Value = myName
              next int_i

              et c'est fait, tu peux aussi formater la date si tu veux ou customiser l'affichage

              Irem
              -1