Existe alguna macro que convierta la fecha en letra?

¿Es decir que convierta 02 -AGO-1998 y que quede como "dos de agosto de mil novecientos noventa y ocho"?

1 respuesta

Respuesta
1

Te anexo la macro:

Function fechaletra(fec As Date) As String
'Por.Dante Amor
    dia = num(Day(fec))
    mes = nombremes(Month(fec))
    ano = num(Year(fec))
    fechaletra = dia & " de " & mes & " de " & ano
End Function
'
Function num(fec As Long) As String
    'Por.Dante Amor
Unidades = Array("", "Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidos", "Veintitres", "Veinticuatro", "Veinticinco", "Veintiseis", "Veintisiete", "Veintiocho", "Veintinueve")
Decenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien")
Centenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
'
Select Case fec
    Case 0: r = "Cero"
    Case 1 To 29: r = Unidades(fec)
    Case 30 To 100: r = Decenas(fec \ 10) + IIf(fec Mod 10 <> 0, " y " + num(fec Mod 10), "")
    Case 101 To 999: r = Centenas(fec \ 100) + IIf(fec Mod 100 <> 0, " " + num(fec Mod 100), "")
    Case 1000 To 1999: r = "Mil" + IIf(fec Mod 1000 <> 0, " " + num(fec Mod 1000), "")
    Case 2000 To 999999: r = num(fec \ 1000) + " Mil" + IIf(fec Mod 1000 <> 0, " " + num(fec Mod 1000), "")
    Case 1000000 To 1999999: r = "Un Millón" + IIf(fec Mod 1000000 <> 0, " " + num(fec Mod 1000000), "")
    Case 2000000 To 1999999999: r = num(fec \ 1000000) + " Millones" + IIf(fec Mod 1000000 <> 0, " " + num(fec Mod 1000000), "")
End Select
num = r
End Function
'
Function nombremes(n)
'Por.Dante Amor
    Meses = Array("", "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre")
    nombremes = meses(n)
End Function

Sigue las Instrucciones para una Función

  1. Abre tu libro de excel
  2. Para abrir VBa y poder pegar la función, Presiona Alt + F11
  3. En el menú elige Insertar / Módulo
  4. En el panel del lado derecho copia la función
  5. En cualquier celda utiliza la función, como cualquier otra función de excel

Por ejemplo si en la celda B5 tienes una fecha, escribe la siguiente función en otra celda.

=fechaletra(B5)

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas