Nommer le nom de plusieurs feuilles

Résolu
Bonjour,

j'aimerais créer un programme qui me nomme mes feuilles (je vais en avoir beaucoup) avec une date.
Chaque feuille aurait une date qui se suit.
Feuille 1 par exemple serait 01 janvier 2010 par exemple.
Feuille 2 02 janvier 2010 ....
Comme je vais avoir environ 90 feuilles, est-ce qu'il y aurait une solution pour automatiser le nom des feuilles?

En vous remerciant

10 réponses

  1. Bonjour,
    La cellule [A1] doit-être en format date .
    1
    1. Bonjour,
      Mettre la date de départ en [A1] et la procédure suivante dans un module puis lancer la procédure.
      Sub renommerSh()
      madate = Range("A1").Value: c = 0
      For Each sh In Worksheets
          sh.Name = madate + c
          c = c + 1
      Next sh
      End Sub
      0
      1. Merci de ta réponse Le Pingou,

        Lorsque j'exécute ta macro j'ai une erreur d'exécution 1004.
        Le nom de la feuille n'est pas valide.

        Sans exagérer, est-ce qu'il serait possible d'avoir un paramètre en plus.
        Commencer le changement de nom à partir d'une feuille (d'un numéro sheets(15) par exemple).
        Ce qui me permettrait de ne pas modifier les 14 première.

        Encore Merci
        0
        1. Bonjour,
          Il faudrait m'expliquer cette erreur !
          Si erreur pas de suite possible.
          Salutations.
          Le Pingou
          0
          1. je crois que VB récupère le nom sous la forme jj/mm/aa et comme le '/' n'est pas permis pour un nom de feuille il faut faire quelque chose au niveau du format date
            0
            1. Le débogueur me surligne cette ligne de commande

              Sh.Name = madate + c

              avec le message d'erreur précedent ou il me demande de vérifier le nom de la feuille.
              0
              1. Contributeur
                Bonjour tt le monde,

                excusez l'incruste

                Option Explicit
                Const depart As Byte = 15 ' feuille de début de numérotage
                
                Sub baptiser_onglet()
                Dim date_dep As Date, dateX As Long, nbre As Byte, cptr As Byte
                
                date_dep = InputBox("saisir la date sous forme jj/mm/aa")
                dateX = DateSerial(Year(date_dep), Month(date_dep), Day(date_dep))
                
                nbre = ThisWorkbook.Sheets.Count
                Application.ScreenUpdating = False
                For cptr = depart To nbre
                    Sheets(cptr).Name = Format(dateX, "dd mmmm yyyy")
                    dateX = dateX + 1
                Next
                
                End Sub


                Attention, la réponse sous forme date de l'inputbox n'est pas traité
                explication: pour additionner une date en VBA il faut utiliser dateserial
                0
                1. Merci pour votre aide,

                  J'ai bien mis ma cellule [A1] sous format date.

                  Pour michel_m, j'ai également une erreur d'exécution sur cette ligne

                  Sheets(cptr).Name = Format(dateX, "dd mmmm yyyy")

                  Erreur d'exécution 9
                  L'indice n'appartient pas à la selection
                  0
                  1. Contributeur
                    désolé, mais j'ai testé avant d'envoyé et c'était OK
                    je viens de re-essayer et pas de problème

                    donc...
                    0
                2. la macro de michel_m est très intéressante et marche bien
                  pour JCD au vu du message derreur
                  peut être : la macro suppose que tu as dejà plus de 15 feuilles dans ton classeur (const depart = 15), elle ne crée pas de nouvelles feuilles donc ...
                  0
                  1. Re Bonsoir michel_m,

                    Effectivement ça fonctionne bien chez moi.
                    Je vais retester demain.

                    Merci à tous.
                    0