Nommer le nom de plusieurs feuilles

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


 
Bonjour,
La cellule [A1] doit-être en format date .
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
JCD
 
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

 
Bonjour,
Il faudrait m'expliquer cette erreur !
Si erreur pas de suite possible.
Salutations.
Le Pingou
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
JCD
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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
JCD
 
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
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 315
 
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
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
JCD
 
Re Bonsoir michel_m,

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

Merci à tous.
0