Re: Extraction de la date dans une chaine de caractère |
Titre du sujet : Re: Extraction de la date dans une chaine de caractère par Guy le 24/07/2015 20:41:17 Option Explicit Const ListeMoisAnglais As String = "JANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDEC" Public Function ExtractionDate(Cellule As Range) Dim ExpReg As Object ' VBScript_RegExp_55.RegExp Dim cMatchs As Object ' VBScript_RegExp_55.MatchCollection Dim sTemp As String Dim sRes As String Dim sTempMois As String Dim IndexMois As Long sRes = vbNullString sTemp = Cellule.Text ' Set ExpReg = New VBScript_RegExp_55.RegExp Set ExpReg = CreateObject("vbscript.regexp") With ExpReg .MultiLine = False .IgnoreCase = True .Pattern = "[0-9]{2}-[aA-zZ]{3}-[0-9]{4} [0-9:]{5}" .Global = True If .Test(sTemp) Then Set cMatchs = .Execute(sTemp) sRes = cMatchs(cMatchs.Count - 1).Value sTempMois = Mid(sRes, 4, 3) IndexMois = ((InStr(ListeMoisAnglais, sTempMois) - 1) / 3) + 1 sRes = Replace(sRes, sTempMois, Format(CStr(IndexMois), "00")) ExtractionDate = sRes End If End With End Function Bonjour rigou et bienvenue dans ce forum,
Saisir le petit bout de code ci-haut et le copier dans un module standard. À noter que le classeur portant ce module devra être porté vers l'extension .xlsm lors de la sauvegarde.
Dans la feuille en exemple inscrire la formule =ExtractionDate(A1) en B1 et la cellule portera la chaîne désirée. Plus d'explications à venir.
Cordialement,
Guy
|
Forums