Konvertering af tekstdatoer til "datoformat"

En dato kan i Excel skrives som fx 12. februar 2012. Datoen er indtastet/importeret, ikke formateret og optræder derfor ikke som en dato, der kan indgå i beregninger. Nedenstående brugerdefinerede funktion (UDF) ændrer datoen til en tekststreng på formen dd-mm-åååå. Den returnerede værdi er en tekststreng, ikke en dato. UDF'en kan levere en dato, men da en UDF ikke kan formatere en celle, vil en dato blive returneret som et helt tal. 12. februar 2012 vil således blive returneret som 40951. Cellen kan selvfølgelig formateres som dato før eller efter brugen af UDF'en, men selv om den i mit tilfælde returnerer en tekststreng, vil denne forsat kunne bruges i beregninger. Med datoen (12. februar 2012) i A1 og datoen 14-2-12  A2 vil følgende regnestykke give 2. =A2 - DatotekstTilDato(A1) (i hvert fald når cellen med formlen formateres som tal).

Den korrekte dato returneres, hvis de tre første bogstaver eller mere af månedsnavnet er anført.  Er færre bogstaver anført, returneres #VÆRDI!.

Function DatotekstTilDato(dato As String) As String

    Dim Mon As String, Monnr As Integer
    Dim Dag As Integer, Aar As Integer

    Mon = Mid(dato, InStr(1, dato, " ") + 1, InStrRev(dato, " ") - InStr(1, dato, " ") - 1)

    Select Case Left(UCase(Mon), 3)
        Case Is = "JAN"
            Monnr = 1
        Case Is = "FEB"
            Monnr = 2
        Case Is = "MAR"
            Monnr = 3
        Case Is = "APR"
            Monnr = 4
        Case Is = "MAJ"
            Monnr = 5
        Case Is = "JUN"
            Monnr = 6
        Case Is = "JUL"
            Monnr = 7
        Case Is = "AUG"
            Monnr = 8
        Case Is = "SEP"
            Monnr = 9
        Case Is = "OKT"
            Monnr = 10
        Case Is = "NOV"
            Monnr = 11
        Case Is = "DEC"
            Monnr = 12
    End Select

    Dag = Left(dato, InStr(1, dato, " ") - 1)
    Aar = Right(dato, Len(dato) - InStrRev(dato, " "))
    DatotekstTilDato = CDate(Dag & "-" & Monnr & "-" & Aar)

End Function
 

- Retur til makroer -
- Retur til Excel -