Bonjour à toutes et à tous,
Je vous souhaite une belle journée
Comme l'indique le titre du fil, je souhaite récupérer la date contenue dans le nom de mon classeur actif.
J'ai trouvé comment récupérer tout le nom (merci à l'auteur) :
VB:
Sub TestNomFichier()
MsgBox Split(ActiveWorkbook.Name, ".")(0)
End Sub
Toutefois, je voudrais juste la date qui est toujours au même format mais qui peut se trouver dans des positions différentes :
1 - isiTel_lionel_Global 2022 06 24,
2 - isiTel_lionel_Global 2022 06 24-ok,
3 - isiTel_lionel_Global 2022 06 24-ok_bon, et peut-être d'autres possibilités,
Est-il possible de récupérer la date où qu'elle soit ? et la coller, par exemple, en cellule A1 de la feuille active,
Un grand merci par avance et je continue mes recherches,
Amicalement,
lionel
Re bonjour @Usine à gaz ,
Je viens de voir ton fichier joint, mais la macro n'est pas complète et le résultat du coup n'est pas bon.
Ton fichier s'appelle Recupere 2022 03 24_date.xlsm
La date que tu inscris en A1 = 24/06/2022 soit la date du jour avec la commande [A1]=Date.
Reprends la macro du post#2 et à la fin tu peux rajouter [A1]=xDateFinale
@+ Lolote83
Toutefois, je voudrais juste la date qui est toujours au même format mais qui peut se trouver dans des positions différentes :
1 - isiTel_lionel_Global 2022 06 24,
2 - isiTel_lionel_Global 2022 06 24-ok,
3 - isiTel_lionel_Global 2022 06 24-ok_bon, et peut-être d'autres possibilités,
Re-Lolote83
Le code fonctionne super bien, encore merci
Mais c'était trop simple
Pour que nos fichiers journaliers soient toujours dans l'ordre de dates :
La date est toujours sous cette forme "2022 06 24" la date est toujours au même format mais peut se trouver en positions différentes dans le nom du classeur.
1 - isiTel_lionel_Global 2022 06 23,
2 - isiTel_lionel_Global 2022 06 23-ok,
3 - isiTel_lionel_Global 2022 06 23-ok_bon, et peut-être d'autres possibilités,
Dans mon fichier de travail, pour que je puisse faire une compraison de dates Il faudrait que ça apparaisse en "G7" comme cela : 23.06.22
Je joins le fichier avec le résultat attendu.
Voyez le fichier joint et cette fonction VBA qui utilise une expression régulière :
VB:
Function RecupDate() As Date
Application.Volatile
Dim RegEx As Object
Set RegEx = CreateObject("VBScript.RegExp") 'expression régulière
RegEx.Pattern = "20\d(2)\s[01]\d\s[0-3]\d" 'années 2000 à 2099
RecupDate = Replace(RegEx.Execute(ThisWorkbook.Name)(0), " ", "/")
End Function
Function extDate()
Dim x, i&
Application.Volatile
x = ThisWorkbook.Name
For i = 1 To Len(x) - 9
If Mid(x, i, 10) Like "#### ## ##" Then extDate = DateValue(Mid(x, i, 10)): Exit Function
Next i
End Function