Microsoft 365 Récupérer la date contenue dans le nom du classeur actif

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
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 :)
 
Solution
Bonjour @Usine à gaz ,
Est-ce que l'année comme indiquée sur les exemples sera toujours la première valeur numérique ?
Si OUI, peut être comme ceci
Code:
Sub Test()
    xNom = ActiveWorkbook.Name
    xPos = InStr(1, xNom, 2)
    xDat = Mid(xNom, xPos, 10)
    xDecoupe = Split(xDat, " ")
    xDateFinale = CDate(xDecoupe(2) & "/" & xDecoupe(1) & "/" & xDecoupe(0))
End Sub
@+ Lolote83

job75

XLDnaute Barbatruc
Du coup je supprime le Replace dans ma fonction :
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 = RegEx.Execute(ThisWorkbook.Name)(0)
End Function
DateValue n'est pas nécessaire si la fonction est déclarée As Date.
 

Pièces jointes

  • Recupere 2022 03 24_date(1).xlsm
    16.2 KB · Affichages: 3

Discussions similaires

Statistiques des forums

Discussions
312 108
Messages
2 085 361
Membres
102 874
dernier inscrit
Petro2611