COMO CONVERTIR NÚMEROS DECIMALES POSITIVOS A TEXTO EN EXCEL MEDIANTE UNA FUNCION PERSONALIZA CREADA EN VBA

Insertamos un módulo en el VBAProject del libro Excel que tenemos abierto

Copiamos el siguiente código:

Function DECIMALTXT(Número As Double, Optional Separador As String) As String
Application.Volatile
Dim dcml As Double, Aux As String
If Separador = "" Then
    Separador = "Punto"
End If
Aux = NMR((Fix(Número))) & " " & Separador
dcml = Round((Número - Fix(Número)) * 100)
Aux = Aux & " " & NMR(Fix(dcml))
DECIMALTXT = Aux
End Function

Private Function NMR(Número As Long) As String
Dim U, D, C
Dim Resultado As String
U = Array("", "Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidós", "Veintitrés", "Veinticuatro", "Veinticinco", "Veintiséis", "Veintisiete", "Veintiocho", "Veintinueve")
D = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien")
C = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
Select Case Número
    Case 0
        Resultado = "Cero"
    Case 1 To 29
        Resultado = U(Número)
    Case 30 To 100
        Resultado = D(Número \ 10) + IIf(Número Mod 10 <> 0, " y " + NMR(Número Mod 10), "")
    Case 101 To 999
        Resultado = C(Número \ 100) + IIf(Número Mod 100 <> 0, " " + NMR(Número Mod 100), "")
    Case 1000 To 1999
        Resultado = "Mil" + IIf(Número Mod 1000 <> 0, " " + NMR(Número Mod 1000), "")
    Case 2000 To 999999
        Resultado = NMR(Número \ 1000) + " Mil" + IIf(Número Mod 1000 <> 0, " " + NMR(Número Mod 1000), "")
    Case 1000000 To 1999999
        Resultado = "Un Millón" + IIf(Número Mod 1000000 <> 0, " " + NMR(Número Mod 1000000), "")
    Case 2000000 To 1999999999
        Resultado = NMR(Número \ 1000000) + " Millones" + IIf(Número Mod 1000000 <> 0, " " + NMR(Número Mod 1000000), "")
End Select
NMR = Resultado
End Function

Pegamos el código:


Guardamos según nuestra preferencia, ya sea como: Libro de Excel habilitado para macros, Complemento de Excel o exportamos el módulo.

Buscamos la función como DECIMALTXT

COMO CONVERTIR NÚMEROS DECIMALES POSITIVOS A TEXTO


COMO CONVERTIR NÚMEROS DECIMALES NEGATIVOS A TEXTO

Comentarios