Anuncios

miércoles, 27 de marzo de 2019

😱👉 Como convertir números a letras o texto en INGLES - EXCEL - MACROS

Aprende a convertir números a letras o texto en Ingles en Excel con macros.


Aprende ha convertir números a letras, texto o palabras en excel y el texto es en ingles, a través de una MACRO.


La macro se utiliza a través de una función creada el cual nos permitirá con una mayor facilidad su operación y esta herramienta nos va permitir utilizarla en las celdas que se necesita colocar el valor en texto por ejemplo en una factura se debe colocar el valor en número y en texto

como convertir numeros a letras en excel


Como convertir números a letras en excel

Con esta macro nos va permitir realizar lo siguiente: 


  • Convertir un número de cualquier dígito y tamaño en excel
  • Se utilizará la macro mediante una función creada
  • La función se puede arrastra para cambiar a texto varias celdas a la ves.

Revisa el video para que aprendas a utilizar la macro y en la parte final del articulo se encuentra el enlace para que la puedas descargar:



La función creada se llama CONVERTIRNUMINGLES y funciona como todas las funciones seleccionamos la celda que queremos convertir a texto, como se muestra en la imagen. Y presionamos enter.

como convertir numeros a letras en excel

como convertir numeros a letras en excel


Si arrastramos la celda obtenemos la conversión de todas la celdas en texto.


como convertir numeros a letras en excel

En la macro vamos a encontrar lo siguiente.

Nombramos las variables todas como texto

Function CONVERTIRNUMINGLES(Numero As Double, Optional CentimosEnLetra As Boolean) As String

Dim Moneda As String

Dim Monedas As String

Dim Centimo As String

Dim Centimos As String

Dim Preposicion As String

Dim NumCentimos As Double

Dim Letra As String

Const Maximo = 1999999999999.99


Luego asignamos los parámetros


Moneda = "Peso"         'Nombre de Moneda (Singular)

Monedas = "Pesos"       'Nombre de Moneda (Plural)

Centimo = "Centavo"     'Nombre de Céntimos (Singular)

Centimos = "Centavos"   'Nombre de Céntimos (Plural)

Preposicion = "Con"     'Preposición entre Moneda y Céntimos


Validamos que el Numero está dentro de los límites y colocamos la función si es = 1 entonces coloquemos la leyenda moneda de lo contrario colocar monedas


'Validar que el Numero está dentro de los límites

If (Numero >= 0) And (Numero <= Maximo) Then

    Letra = NUMERORECURSIVO((Fix(Numero)))              'Convertir el Numero en letras

    'Si Numero = 1 agregar leyenda Moneda (Singular)

    If (Numero = 1) Then

        Letra = Letra & " " '& Moneda

    'De lo contrario agregar leyenda Monedas (Plural)

    Else

        Letra = Letra & " " '& Monedas

    End If

    'NumCentimos = Round((Numero - Fix(Numero)) * 100)   'Obtener los centimos del Numero

    NumCentimos = Round((Numero - Fix(Numero)) * 10)   'Obtener los centimos del Numero

    'Si NumCentimos es mayor a cero inicar la conversión

    If NumCentimos >= 0 Then

        'Si el parámetro CentimosEnLetra es VERDADERO obtener letras para los céntimos

        If CentimosEnLetra Then

            Letra = Letra & " " & Preposicion & " " & NUMERORECURSIVO(Fix(NumCentimos)) 'Convertir los céntimos en letra

            'Si NumCentimos = 1 agregar leyenda Centimos (Singular)

            If (NumCentimos = 1) Then

                Letra = Letra & " " '& Centimo

            'De lo contrario agregar leyenda Centimos (Plural)

            Else

                Letra = Letra & " " '& Centimos

            End If

         'De lo contrario mostrar los céntimos como número

         Else

            If NumCentimos < 10 Then

                'Letra = Letra & " 0" & NumCentimos & "/100"

            Else

                'Letra = Letra & " " & NumCentimos & "/100"

            End If

         End If

    End If

    If Right(Letra, 9) = "Millones " Then

        Letra = Letra & "de "

    End If

    'Regresar el resultado final de la conversión

    CONVERTIRNUMINGLES = Letra & " pesos"

Else

    'Si el Numero no está dentro de los límites, entivar un mensaje de error

    CONVERTIRNUMINGLES = "ERROR: El número excede los límites."

End If

End Function

Function NUMERORECURSIVO(Numero As Long) As String

Dim Unidades, Decenas, Centenas

Dim Resultado As String

'**************************************************

' Nombre de los números

'**************************************************

Unidades = Array("", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen", "Twenty", "Twenty One", "Twenty Two", "Twenty Three", "Twenty Four", "Twenty Five", "Twenty Six", "Twenty Seven", "Twenty Eight", "Twenty Nine")

Decenas = Array("", "Teen", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety", "One Hundred")

Centenas = Array("", "One Hundred", "Two Hundred", "Three Hundred", "Four Hundred", "Five Hundred", "Six Hundred", "Seven Hundred", "Eight Hundred", "Nine Hundred")

'**************************************************

Select Case Numero

    Case 0

        Resultado = "Cero"

    Case 1 To 29

        Resultado = Unidades(Numero)

    Case 30 To 100

        Resultado = Decenas(Numero \ 10) + IIf(Numero Mod 10 <> 0, " and " + NUMERORECURSIVO(Numero Mod 10), "")

    Case 101 To 999

        Resultado = Centenas(Numero \ 100) + IIf(Numero Mod 100 <> 0, " " + NUMERORECURSIVO(Numero Mod 100), "")

    Case 1000 To 1999

        Resultado = "One Thousand" + IIf(Numero Mod 1000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000), "")

    Case 2000 To 999999

        Resultado = NUMERORECURSIVO(Numero \ 1000) + " Thousand" + IIf(Numero Mod 1000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000), "")

    Case 1000000 To 1999999

        Resultado = "One Million" + IIf(Numero Mod 1000000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000000), "")

    Case 2000000 To 1999999999

        Resultado = NUMERORECURSIVO(Numero \ 1000000) + " Millions" + IIf(Numero Mod 1000000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000000), "")

End Select

NUMERORECURSIVO = Resultado

End Function


En el siguiente ENLACE puedes DESCARGAR la macro para convertir números a letras en excel.



Seguramente quieres sabes más acerca de Excel, no te olvides darte una vuelta por las siguientes secciones disponibles para ti de manera gratuita: 

Canal de YouTube
Comunidad Telegram

Hasta una próxima y te deseo el mayor de los EXITOS

6 comentarios:

  1. hola me podría enviar la macro a mi correo por favor cpina5959@gmail.com

    ResponderEliminar
  2. hola necesito convertir numeros en english moneda en dolares

    ResponderEliminar
  3. Esta genial amigo, podrias enviar la macro a:
    angdelgado.r@gmail.com

    ResponderEliminar
  4. hola podrías enviarme la macro por favor
    galicia180202@gmail.com

    ResponderEliminar
  5. Buenas como estas. Buen tutorial. Podrias enviarme la Macro Como convertir números a letras o texto en INGLES - EXCEL - MACROS. Gracias de antemano Saludos pgaalarcon@gmail.com

    ResponderEliminar
  6. Me pueden enviar la macro por favor?
    con.poniente@gmail.com

    ResponderEliminar