1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Function LITTERAL(ladate As Date)
Dim leJour(99), leJourE, leMois, leMoisE, Mannee, ManneeE, CanneeE, i As Integer, Resultat(3), x As Integer
If ladate = 0 Then LITTERAL = "": Exit Function
If Year(ladate) = 1900 Or ladate = "31/12/1899" Then
ladate = IIf(ladate < DateSerial(1900, 2, 1), ladate + 1, ladate)
End If
For x = 0 To 99
leJour(x) = x
Next x
leJourE = Array("", "premier", "deux", "trois", "quatre", "cinq", "six", "sept", "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", _
"seize", "dix-sept", "dix-huit", "dix-neuf", "vingt", "vingt et un", "vingt-deux", "vingt-trois", "vingt-quatre", "vingt-cinq", _
"vingt-six", "vingt-sept", "vingt-huit", "vingt-neuf", "trente", "trente et un", "trente-deux", "trente-trois", "trente-quatre", "trente-cinq", _
"trente-six", "trente-sept", "trente-huit", "trente-neuf", "quarante", "quarante et un", "quarante-deux", "quarante-trois", "quarante-quatre", _
"quarante-cinq", "quarante-six", "quarante-sept", "quarante-huit", "quarante-neuf", "cinquante", "cinquante et un", "cinquante-deux", "cinquante-trois", _
"cinquante-quatre", "cinquante-cinq", "cinquante-six", "cinquante-sept", "cinquante-huit", "cinquante-neuf", "soixante", "soixante et un", _
"soixante-deux", "soixante-trois", "soixante-quatre", "soixante-cinq", "soixante-six", "soixante-sept", "soixante-huit", "soixante-neuf", _
"soixante-dix", "soixante et onze", "soixante-douze", "soixante-treize", "soixante-quatorze", "soixante-quinze", "soixante-seize", _
"soixante-dix-sept", "soixante-dix-huit", "soixante-dix-neuf", "quatre-vingt", "quatre-vingt-un", "quatre-vingt-deux", "quatre-vingt-trois", _
"quatre-vingt-quatre", "quatre-vingt-cinq", "quatre-vingt-six", "quatre-vingt-sept", "quatre-vingt-huit", "quatre-vingt-neuf", _
"quatre-vingt-dix", "quatre-vingt-onze", "quatre-vingt-douze", "quatre-vingt-treize", "quatre-vingt-quatorze", "quatre-vingt-quinze", "quatre-vingt-seize", _
"quatre-vingt-dix-sept", "quatre-vingt-dix-huit", "quatre-vingt-dix-neuf")
leMois = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
leMoisE = Array("janvier", "février", "mars", "avril", "mai", "juin", "juillet", "aout", "septembre", "octobre", "novembre", "décembre")
'ci-dessous, je conserve jusqu'au 4e millénaire après je prends ma retraite
Mannee = Array(0, 1, 2, 3)
ManneeE = Array("", "mille", "deux mille", "trois mille")
CanneeE = Array("", "cent", "deux cents", "trois cents", "quatre cents", "cinq cents", "six cents", "sept cents", "huit cents", "neuf cents")
For i = 0 To Val(Split(ladate, "/")(0))
If Val(Split(ladate, "/")(0)) = leJour(i) Then Resultat(0) = leJourE(i)
Next i
For i = 0 To Val(Split(ladate, "/")(1)) - 1
If Val(Split(ladate, "/")(1)) = leMois(i) Then Resultat(1) = leMoisE(i)
Next i
If leJourE(Right(Split(ladate, "/")(2), 2)) <> "" And CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) Like "*cent*" Then
CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) = Left(CanneeE(Mid(Split(ladate, "/")(2), 2, 1)), 4)
End If
Resultat(2) = ManneeE(Left(Split(ladate, "/")(2), 1)) & " " & CanneeE(Mid(Split(ladate, "/")(2), 2, 1)) & " " & _
leJourE(Right(Split(ladate, "/")(2), 2))
LITTERAL = Application.WorksheetFunction.Trim(Resultat(0) & " " & Resultat(1) & " " & Resultat(2))
End Function |
Partager