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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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
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
 
Dernière édition:
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
 
Bonjour,

Si la date peut être "dans des positions différentes", pourquoi ne donner que des exemples où elle est toujours au même endroit ??? 🤔
 
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.

Je continue mes recherches,
lionel 🙂
 

Pièces jointes

Re-Lolote83 🙂
Merci, c'est exactement ça 🙂
 
Bonsoir Lionel, Lolote83, TooFatBoy,

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
A+
 

Pièces jointes

Dernière édition:
Bonjour à tous,

Un autre code sans expression régulière :
VB:
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
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

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