COMO CONVERTIR UN NÚMERO ENTERO POSITIVO A TEXTO EN EXCEL MEDIANTE UNA FUNCIÓN PERSONALIZADA (UDF)

Insertamos un módulo en el VBAProject (PERSONAL.XLSB)

Si deseamos que la UDF este disponible para emplearse en cualquier Libro.


Insertamos un módulo en el VBAProject del Libro en Uso

Si deseamos que la UDF este disponible únicamente para emplearse en un libro en especifico. Para identificarlo este lleva el mismo nombre del archivo y una vez que se escriba el código, el archivo debe guardarse como Libro de Excel habilitado para macros.

Copiamos el siguiente código:

Function NUMEROTXT(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 " + NUMEROTXT(Número Mod 10), "")
    Case 101 To 999
        Resultado = C(Número \ 100) + IIf(Número Mod 100 <> 0, " " + NUMEROTXT(Número Mod 100), "")
    Case 1000 To 1999
        Resultado = "Mil" + IIf(Número Mod 1000 <> 0, " " + NUMEROTXT(Número Mod 1000), "")
    Case 2000 To 999999
        Resultado = NUMEROTXT(Número \ 1000) + " Mil" + IIf(Número Mod 1000 <> 0, " " + NUMEROTXT(Número Mod 1000), "")
    Case 1000000 To 1999999
        Resultado = "Un Millón" + IIf(Número Mod 1000000 <> 0, " " + NUMEROTXT(Número Mod 1000000), "")
    Case 2000000 To 1999999999
        Resultado = NUMEROTXT(Número \ 1000000) + " Millones" + IIf(Número Mod 1000000 <> 0, " " + NUMEROTXT(Número Mod 1000000), "")
End Select
NUMEROTXT = 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 NUMEROTXT


Como convertir Números Enteros Positivos a Texto en Excel


Como convertir Números Enteros Negativos a Texto en Excel


Comentarios