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
Function extDate()
Dim x, i&
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
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
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.