Macro para convertir la fecha a texto

Me ayudan con una macro para convertir una fecha a texto, por ejemplo, tengo en una celda 04/06/2015 y quiero en otra celda el texto Cuatro de Junio de Dos Mil Quince.

1 Respuesta

Respuesta
2

Te anexo una función:

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

Ejemplo:

Si en B5 tienes tu fecha, en otra celda pon esto:

=fechaletra(B5)

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas