Donc j’ai déjà réussi à moitié car j’aimerai que le dossier “12” soit nommé “Décembre” et si possible “12-décembre” (01-janvier ; 02-février; etc.)
car je veux trier les dossier “Mois” par nom.
Sub testsaveas()
chemin = ThisWorkbook.Path
x = chemin & Format(Cells(4, 1), "\\yyyy\\mm-mmmm\\yyyy-mm-dd-ddd") + ".xls"
MsgBox x
End Sub
Il ne correspond pas tout à fait à l’exemple que tu donnes, parce que je ne vois pas comment on obtient décembre à partir de 2007/10/19, ni pourquoi le ‘lundi’ est en dur, mais tu dois pouvoir adapter facilement en re référant à l’aide sur ‘format’
il faut pour avoir le nom du jour que tu cherche du coté de la fonction
weekday et weekdayname
WeekdayName(Weekday(Now, vbMonday), False)
te donne le nom du jour courant
MonthName(Month(Now), False)
te donne le nom du mois courant
sacahnt que les fonctions weekday renvoie une valeur de 1 à 7 pour le numéro du jour de la semaine (en précisant que le premier jour est un lundi (vbmonday), et month te donnes le numéro du mois (ex:mars=3)
cette fonction m interesse mais j aimerais qu il y ait un chrono, car c est un classeur partagé et j’aimerai qu’il y ait à la fin genre un numéro d enregistrement
Si tu sais que le numero d’index du fichier est compris est compris entre un ‘_’ et le point séparateur de l’extension, il suffit d’isoler cette partie, de la transformer en nombre et de l’incrémenter.
Si on reprend la fonction donnée plus haut, il faut la modifier ainsi :
Sub testsaveas()
chemin = ThisWorkbook.Path
fichier = ThisWorkbook.Name
finIndex = InStr(fichier, ".xls")
debIndex = InStrRev(fichier, "_")
indexStr = Mid(fichier, debIndex + 1, finIndex - debIndex - 1)
indexNum = Val(indexStr)
x = chemin & Format(Cells(4, 1), "\\yyyy\\mm-mmmm\\yyyy-mm-dd-ddd") + "_" + Format(indexNum + 1, "00") + ".xls"
MsgBox x
End Sub
On part du principe que le nom de fichier est de la forme xxx_date_index, avec index de 00 à 99
1- on stocke ce nom dans la variable fichier (variable de type string)
2-debindex et finindex sont les positions dans fichier des délimiteurs de la partie index (donc respectivement __ et .)
3- Mid permet d’extraire la sous-chaine qui nous intéresse (le numéro d’index sous forme de texte).
Il faut laisser fichier, c’est le nom de la variable.
OK, mais un format date inséré par une macro, je me méfie : vérifie en mettant provisoirement le format de la cellule en standard ou en lui appliquant la fonction ESTNUM() qu’elle contient bien un nombre et pas une chaine de caractères.
Si tu n’es pas sûr, donne la ligne macro qui remplit la cellule
Il faut pour cala qu’avant d’utiliser le dossier tu en testes l’existence et que tu le crées le cas échéant.
Pour cela, utilise la commande Dir avec l’argument vbdirectory.
Regarde l’aide de la commande dans VBA, et surtout l’exemple qui est donné, il est assez facile à adapter