renommer une feuille excel avec une date...

sebetrose

XLDnaute Nouveau
Bonjour à tous,
Etant débutant dans excel j'aimerai savoir s'il est possible de renommer une feuille excel par une date ......
Je m'explique peut on remplacé "feuil1" par une date du style 12/07/2013???
Et surtout est il possible de créer une suite de date afin de créer un tableur de gestion pour les mois puis l'année en cours avec une liaison entre ces derniers pour avoir une tableur récapitulatif annuel????
Je sais pas si je suis très clair.....en tout cas merci par avance
 

sebetrose

XLDnaute Nouveau
Re : renommer une feuille excel avec une date...

J'ai essayé et réussi je te remercie beaucoup....pour le modele c'est gênant car il s'agit d'un tableur de ma hiérarchie.....
par contre si je veux faire à la semaine je fais ça en code (correction en vert):

Sub a()
Dim i%, j
'création de 31 feuilles hebdo
For j = 1 To 31
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = Format(DayName(j), "mmmm")
Next j
Dim arrWSN() As String
'crée un tableau avec le nom de toutes les feuilles du classeur actif
ReDim arrWSN(1 To ActiveWorkbook.Sheets.Count)
For i = 1 To Sheets.Count
arrWSN(i) = Sheets(i).Name
Next i
'permet de recopier une plage de cellules définies issue
'd'une d'une feuille "MODELE"
'sur tous les feuilles d'un même classeur
Worksheets(arrWSN).FillAcrossSheets Worksheets("MODELE").Range("A1:D18")
' ici adapter l'adresse de la plage de cellules
End Sub

C'est ça????
Merci d'avance
 

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Re

Non c'est plutot comme ceci ;)
Code:
Sub FeuillesJournalières()
Application.ScreenUpdating = False
For Jour = DateSerial(Year(Date), Month(Date), 1) To DateSerial(Year(Date), Month(Date) + 1, 0)
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = Format(Jour, "d.m.yyyy")
Next Jour
Dim arrWSN() As String
'crée un tableau avec le nom de toutes les feuilles du classeur actif
ReDim arrWSN(1 To ActiveWorkbook.Sheets.Count)
For i = 1 To Sheets.Count
arrWSN(i) = Sheets(i).Name
Next i
'permet de recopier une plage de cellules définies issue
'd'une d'une feuille "MODELE"
'sur tous les feuilles d'un même classeur
Worksheets(arrWSN).FillAcrossSheets Worksheets("MODELE").Range("A1:D18")
End Sub

quand tu dis
Ben ça craint c'est des docs pro donc non pas trop
je t'ai déjà répondu précédemment :eek:
PS:pour que tout le monde y voit plus clair, il serait peut-être temps que tu prennes le temps de créer un fichier exemple anonymisé et que tu le joignes dans ta discussion, non ? ;)
Tu n'as plus qu'à te retrousser les manches ;)
 
Dernière édition:

sebetrose

XLDnaute Nouveau
Re : renommer une feuille excel avec une date...

Merci beaucoup j'essayerai demain et te tiens au jus.....et ça mets automatiquement la date du mois voulu?????si par exemple je veux le faire pour juillet????il faut que je modifie quoi????
En tout cas encore merci pour cette aide
Au plaisir de vous lire et de vous aider si je peux....mais vu votre niveau, et surtout le mien ça va etre dur lol
 

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Re

Date= aujourd'hui donc qu'en déduis-tu en lisant le code VBA de mon précédent message?

Sinon relis l'édition de mon précédent message à propos des fichiers exemples.

EDITION: j'anticipe au cas où tu voudrais aussi créer des feuilles hebdomadaires ;)
Code:
Sub FeuillesHebdo()
Dim i%
Application.ScreenUpdating = False
For i = 1 To 53
L = Lundi(i, Year(Date))
Worksheets.Add.Move after:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "S" & i & "_" & Format(L, "d.m") & "_" & Format(L + 7, "d.m.yyyy")
Next
Dim arrWSN() As String
'crée un tableau avec le nom de toutes les feuilles du classeur actif
ReDim arrWSN(1 To ActiveWorkbook.Sheets.Count)
For i = 1 To Sheets.Count
arrWSN(i) = Sheets(i).Name
Next i
'permet de recopier une plage de cellules définies issue
'd'une d'une feuille "MODELE"
'sur tous les feuilles d'un même classeur
Worksheets(arrWSN).FillAcrossSheets Worksheets("MODELE").Range("A1:D18")
End Sub
Code:
Function Lundi(nS As Integer, Optional aN) As Double
'Daniel Maher, mpfe
'retourne la date du lundi de la semaine (nS) de l 'année (aN)
Dim premJ As Date
If IsMissing(aN) Then aN = Year(Date)
premJ = DateSerial(aN, 1, 3)
Lundi = premJ - Weekday(premJ) - 5 + (7 * nS)
End Function
 
Dernière édition:

sebetrose

XLDnaute Nouveau
Re : renommer une feuille excel avec une date...

Salut Staple .....oups sorry et merci pour l'anticipation.....
Merci à tous et à bientôt pour d'autres questions :)
Et si je veux nommé plus simplement les feuilles ......par exemple semaine 1, semaine 2 ect.......et anticipé pour 2014.....je change

L = Lundi(i, Year(2014))??????ou c'est plus compliqué?

Et pour renommé les semaines comme je t'ai demandé:


ActiveSheet.Name = "S" & i & "_" & Format(L, "d.m") & "_" & Format(S+ 7, "d.m.yyyy")?????? ou c'est encore plus compliqué??????

De plus tous ce qui est écrit en vert peut etre supprimé, dans le code vba c'est ça ?????
Encore merci
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Bonsoir


Pour créer un classeur avec 53 feuilles
(Selon les années , tu supprimes la 53éme feuille manuellement ;)
Pour 2014, essayes la macro ci-dessous:
VB:
Sub test()
'La 1ere semaine de 2014 commence en 2013
'la ligne ci-dessous pour rpondre à ta question
'MsgBox Format(Lundi(1, 2014), "dd/mm/yyyy")

Dim i%
Application.ScreenUpdating = False
For i = 1 To 53
    Sheets.Add.Move after:=Sheets(Sheets.Count)
    ActiveSheet.Name = _
    "S" & i & _
    Application.Proper(Format(Lundi(i, 2014), " ddd d mmm"))
Next i
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Bonjour

Alors en te basant sur ton modèle:
Pour lees feuilles hebdomadaires
Code:
Sub CreeHebdo()
Dim i%, annee
annee = InputBox("Choisir l'année du planning?", "Planning", Year(Date))
Application.ScreenUpdating = False
Application.StatusBar = vbNullString
For i = 1 To 53
    Sheets(1).Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "S." & i
    ActiveSheet.Range("B5") = Format(Lundi(i, annee), " dddd d mmmm yyyy")
Next i
Application.ScreenUpdating = True
End Sub

Code:
Function Lundi(nS As Integer, Optional aN) As Double
'Daniel Maher, mpfe
'retourne la date du lundi de la semaine (nS) de l 'année (aN)
Dim premJ As Date
If IsMissing(aN) Then aN = Year(Date)
premJ = DateSerial(aN, 1, 3)
Lundi = premJ - Weekday(premJ) - 5 + (7 * nS)
End Function
 

sebetrose

XLDnaute Nouveau
Re : renommer une feuille excel avec une date...

Merci impeccable.....

Je vais encore abusé ......sur le même modele peut on avoir la meme chose mais ce coup si sur une semaine........et avec la fonction ou on choisis l'année et le mois???????
En tout cas je te remercie et encore bon anniv :)


P.S: peut on enregistrer une macro pour s'en reservir ultérieurement ??????et si oui comment fait on ????
Encore merci Staple.....t'es un bon
 

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Re

J'ai juste pris le temps de déjeuner
(j'ai le droit ? ;) )
VB:
Sub CreeUnJourParMois()
Dim MoisChoisi As Date, Mois, NbJours As Byte, i As Byte
Mois = _
        InputBox("Saisir le mois au format mm/aaaa", _
        "Choix du mois", _
        Format(Date, "mm/yyyy"))
Application.ScreenUpdating = False
If IsDate(Mois) Then
    MoisChoisi = CDate(Mois)
    NbJours = Day(DateSerial(Year(MoisChoisi), Month(MoisChoisi) + 1, 0))
    For i = 1 To NbJours
    Sheets(1).Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = Format(DateSerial(Year(Mois), Month(Mois), i), "d_mmm")
    ActiveSheet.Range("B5") = Format(i & "/" & Mois, "dddd d mmmm")
    Next
End If
Application.ScreenUpdating = True
End Sub
 

sebetrose

XLDnaute Nouveau
Re : renommer une feuille excel avec une date...

Biensur que tu as le droit de déjeuner....prend le temps que tu veux pour répondre t'inquiete c'est pas à la minute.........Et comment on peut enregistrer une macro ......j'ai essayer mes rien trouver dans excel 2010......merci d'avance et prend ton temps pour répondre lol.........encore merci
 

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Re

Voici pour créer les semaines d'un mois choisi.
PS: Pour enregistrer une macro
(voir les tutos sur le net, il suffit d'un bon moteur de recherche ;) ) : Un exemple ici
Au fait, tu as déjà zappé ce que je te disais dans le message #14 :confused:
https://www.excel-downloads.com/threads/renommer-une-feuille-excel-avec-une-date.208412/
Code:
Sub CreeSemdansMoisChoisi()
Dim MoisChoisi As Date, Mois, NbJours As Byte, i As Byte
Mois = _
        InputBox("Saisir le mois au format mm/aaaa", _
        "Choix du mois", _
        Format(Date, "mm/yyyy"))
Application.ScreenUpdating = False
If IsDate(Mois) Then
    MoisChoisi = CDate(Mois)
    NbJours = Day(DateSerial(Year(MoisChoisi), Month(MoisChoisi) + 1, 0))
    For i = 1 To NbJours
    Select Case Weekday(i & "/" & Mois, vbMonday)
    Case 1
    ds = CDate(i & "/" & Mois)
    fs = ds + 6
    Sheets(1).Copy after:=Sheets(Sheets.Count)
    ActiveSheet.Name = Format(ds, "d_mmm")
    ActiveSheet.Range("B5") = StrConv("Sem: " & Format(ds, "ddd d") & " au " & Format(fs, "ddd d/mm/yyyy"), vbProperCase)
    End Select
    Next
End If
End Sub

Code:
Function Lundi(nS As Integer, Optional aN) As Double
'Daniel Maher, mpfe
'retourne la date du lundi de la semaine (nS) de l 'année (aN)
Dim premJ As Date
If IsMissing(aN) Then aN = Year(Date)
premJ = DateSerial(aN, 1, 3)
Lundi = premJ - Weekday(premJ) - 5 + (7 * nS)
End Function
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : renommer une feuille excel avec une date...

Re

Donc j'en déduis que tu as ce qu'il faut pour créer tes feuilles dédiés au dieu Chronos ? ;)
Pas d'autres questions?
Si non à la revoyure pour d'autres questions sur d'XLD.
(d'ici là, n'oublie pas de caresser chaque matin la touche F1 de ton clavier quand tu badines avec Excel)
 

Discussions similaires

Réponses
0
Affichages
260

Statistiques des forums

Discussions
312 545
Messages
2 089 459
Membres
104 169
dernier inscrit
Philippe Mattia