Anuncios

martes, 7 de noviembre de 2017

¿Como Convertir y pasar NÚMEROS a LETRAS en Excel?

Aprende con un a función a convertir y pasar números a letras, texto o palabras en excel, a través de una MACRO.


La macro se utiliza a través de una función creada con visual basic 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 los numeros en letras en excel



¿Cómo 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 puedas descargar la macro:



Importante que para utilizar la macro debemos de tener habilitados el menú de programador o desarrollador dependiendo de la versión de excel que tengas. En este CORTO VIDEO te explico como lo puedes  HABILITAR


Después de que tengamos habilitado las macros debemos de dirigirnos a la pestaña de desarrollador o programador y luego en el icono de Visual Basic


icono de visual basic

Luego nos vamos para el menú insertar y presionamos clic en nuevo módulo para así abrir un nuevo lienzo para la macro.


Insertar un modulo en visual basic

Ahora en el nuevo lienzo vamos a pegar la macro que descargamos y que se encuentra en la parte inferior del articulo.


Ventana de visual basic en excel

Para utilizar la nueva función creada tenemos el siguiente ejercicio, varios números para convertirlos a texto.


como convertir un numero en texto en excel

La función creada se llama CONVERTIRNUM 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 un numero en texto en excel

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


como convertir un numero en texto en excel

En la macro podemos cambiar el tipo de moneda, por ejemplo si no queremos que nos aparezca pesos sino dolares, en la opción de CONVERTIRNUM = Letra & "Cambiamos la moneda que deseamos" para el ejemplo Dolares.


Si no queremos que nos salga ningún tipo de moneda. borramos &"Dolares"


como convertir un numero en texto en excel

Función para pasar de números a texto en excel


En la macro vamos a encontrar lo siguiente.


Nombramos las variables todas como texto


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 número esta dentro de los límites y colocamos la función si es = 1 entonces coloquemos la leyenda moneda de lo contrario colocar monedas


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

Utilizamos la función CONVERTIRNUM el cual es igual a la variable letra anidado a pesos

CONVERTIRNUM = Letra & " pesos"
Else

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

Si aparerce el error que nos coloque el siguiente mensaje
CONVERTIRNUM = "ERROR: El número excede los límites."
End If
End Function

Nombramos la función y le asignamos la variable texto.
Function NUMERORECURSIVO(Numero As Long) As String
Dim Unidades, Decenas, Centenas
Dim Resultado As String

' Nombre de los números

Le asignamos las letras a la variable unidades
Unidades = Array("", "Un", "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")

Le asignamos los números a la variable decenas
Decenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien")

Le asignamos los letras a la variable centenas
Centenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")

Creamos un ciclo para cada caso dependiendo del rango

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, " y " + 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 = "Mil" + IIf(Numero Mod 1000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000), "")

Case 2000 To 999999
Resultado = NUMERORECURSIVO(Numero \ 1000) + " Mil" + IIf(Numero Mod 1000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000), "")

Case 1000000 To 1999999
Resultado = "Un Millón" + IIf(Numero Mod 1000000 <> 0, " " + NUMERORECURSIVO(Numero Mod 1000000), "")

Case 2000000 To 1999999999
Resultado = NUMERORECURSIVO(Numero \ 1000000) + " Millones" + 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
Instagram: Aprende y Enseña Excel
Facebook: Aprende Excel Fácil
Twitter: Aprende y Enseña Excel


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


Aprende y Enseña Excel.