Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

Usine à gaz

XLDnaute Barbatruc
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…