Ir al contenido principal

Convertir números a letras

Te muestro como crear tu propia función para convertir números a letras, esto puede serte de mucha utilidad si usas Excel para imprimir  reportes en los que debas ingresar un numero en letras.
Primero ingresa a VBA presionando las teclas Alt+F11, e inserta un Modulo (Si ya tienes un modulo no necesitas insertar uno nuevo)

Insertar un modulo de codigo en VBA 
Ahora selecciona tu modulo (Module1)
Ventana de codigo para agregar la funcion
Y en la ventana derecha ingresa este texto:

Function NumLetras(Valor As Currency, Optional MonedaSingular As String = "", Optional MonedaPlural As String = "") As String
Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit
Dim ValorEntero As Long
    Valor = Round(Valor, 2)
    lyCantidad = Int(Valor)
    ValorEntero = lyCantidad
    lyCentavos = (Valor - lyCantidad) * 100
    laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
    laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
    laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
    lnNumeroBloques = 1
   
    Do
        lnPrimerDigito = 0
        lnSegundoDigito = 0
        lnTercerDigito = 0
        lcBloque = ""
        lnBloqueCero = 0
        For I = 1 To 3
            lnDigito = lyCantidad Mod 10
            If lnDigito <> 0 Then
                Select Case I
                Case 1
                    lcBloque = " " & laUnidades(lnDigito - 1)
                    lnPrimerDigito = lnDigito
                Case 2
                    If lnDigito <= 2 Then
                        lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
                    Else
                    lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque
                    End If
                    lnSegundoDigito = lnDigito
                Case 3
                    lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
                    lnTercerDigito = lnDigito
                End Select
            Else
                lnBloqueCero = lnBloqueCero + 1
            End If
            lyCantidad = Int(lyCantidad / 10)
            If lyCantidad = 0 Then
                Exit For
            End If
        Next I
        Select Case lnNumeroBloques
            Case 1
                NumLetras = lcBloque
            Case 2
                NumLetras = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & NumLetras
            Case 3
                NumLetras = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & NumLetras
        End Select
        lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    NumLetras = NumLetras & " " & Format(Str(lyCentavos), "00") & "/100 " & IIf(ValorEntero = 1, MonedaSingular, MonedaPlural)
End Function

Y guarda los cambios presionando Ctrl+S o con el boton de Guardar en la barra de herramientas.

Como usar la función para convertir los números a letras?
Digamos que nuestros importes inicia apartir de la celda A1 y en la columna B1 aplico la siguiente formula:
=NOMPROPIO(NumLetras(A1,"Peso","Pesos"))
 y tendremos este resultado:


Puedes descargar el archivo - Convertir número a letras utilizado en este artículo y reutilizar las funciones.







Comentarios

Entradas más populares de este blog

ATAJOS DEL TECLADO

Prácticamente todas las herramientas y acciones de Excel se pueden ejecutar desde el teclado. Eso te da mucha más velocidad a la hora de manejar Excel y aumenta tu productividad en tu trabajo diario. Tenemos preparada esta impresionante lista de atajos del teclado, seguro que encontrás muchos que no conocías! TECLAS PARA TRABAJAR EN UNA HOJA DE CALCULOS  Teclas para moverse y desplazarse por una hoja de cálculo o un libro Teclas de dirección Moverse una celda hacia arriba, hacia abajo, hacia la izquierda o hacia la derecha CTRL+ tecla de dirección Ir hasta el extremo de la región de datos actual INICIO Ir hasta el comienzo de una fila CTRL+INICIO Ir hasta el comienzo de una hoja de cálculo CTRL+FIN Ir a la última celda de la hoja de cálculo, que es la celda ubicada en la intersección de la columna situada más a la derecha y la fila ubicada más abajo (en la esquina inferior derecha) o la celda opuesta a la celda inicial, que es normalmente la celda A1 AV PÁG ...

14 formas de acelerar y optimizar tus macros excel

Esta información es muy útil para quienes manejen el tema de  programación de macros excel.  ¿Tus macros van lentas? ¿Problemas a la hora de ejecutarlas? ¿Cuáles son las técnicas recomendadas? Cuando de  programación de macros excel  se trata, el tema de la eficiencia y la velocidad es clave. Hay 2 leyes fundamentales que hay que recordar: . a. Cuanto menos código tiene una macro mejor…¿por qué? Ayuda a que la macro se ejecute mucho más rápido Simplifica la tarea a la hora de modificar/ampliar/reparar la macro . b. Cuanto más rápido se ejecuta una macro mejor!…¿por qué? Mejora la experiencia del usuario No mantiene la PC ocupada tanto tiempo Respecto de usar menos código dependerá de las habilidades del  programador excel  en cuestión. Hemos visto infinidad de casos donde 30 o 40 líneas de código VBA se pueden resumir en 5 o 6 líneas (algo similar pasa con las fórmulas excel). Siempre hay macros o fórmulas que hacen la...

¿Cómo saber si tengo instalado una versión de Office de 32 o 64 bits?

Microsoft recomienda el uso de Office de 32 bits para evitar problemas de compatibilidad, incluso nos da la posibilidad de usar esta versión en  sistemas operativos de 32 o 64 bits mientras que   una versión de Office de 64 bits solo puede ser usado en  sistemas operativos de 64 bits. La versión de office de 64 bits está orientada a archivos con altos volúmenes de información con tamaños y/o peso superior a 2GB, podemos inferir que esta versión esta orientada a usuarios avanzados y usos corporativos. A continuación te explico paso a paso como saber la versión de office (32 o 64 bits) que tenemos instalado para Office 2010 y 2013. OFFICE 2010 Abrimos Excel 2010 . Clic en el menú ARCHIVO . Clic en AYUDA En la parte derecha podemos ver la versión de Excel. OFFICE 2013 Abrimos Excel 2013. Clic en el menú ARCHIVO . Clic en CUENTA. Clic en ACERCA DE EXCEL. Se apertura una ventana desde donde podemos ver la versión.

Concatenar textos en un solo textbox

Como su mismo nombre lo dice, es un código que concatena varios textbox en un solo textbox. espero les sirva de algo       Descargar Archivo

Funcion (NOMPROPIO,MAYUSC,MINUSC)

Existen algunas funciones en Excel que te ayudarán a aplicar formato de mayúsculas ó minúsculas a textos de manera fácil y rápida. Revisaremos estas funciones con un ejemplo sencillo. En la celda A1 colocaré el valor “excel total”: Primera letra en mayúscula Ahora haré uso de la función NOMPROPIO para colocar la primera letra de cada palabra en mayúscula. La fórmula queda de la siguiente manera: =NOMPROPIO(A1) El resultado al aplicar esta fórmula en la celda B1 es el siguiente: Convertir a mayúsculas Para transformar todas las letras en mayúsculas de la celda B1 y utilizaré la función MAYUSC aplicando la siguiente fórmula: =MAYUSC(B1) Con esta fórmula, la celda C1 tendrá el siguiente resultado: Convertir a minúsculas Finalmente haré uso de la función MINUSC para convertir de nuevo todas las letras en minúsculas. La fórmula a utilizar será la siguiente: =MINUSC(C1) Este es el resultado final:

Una forma para crear copia de una hoja

Con Excel es posible crear una copia de la hoja activa. Es muy fácil: Con el cursor del ratón, seleccione la hoja que quiere copiar y presione simultáneamente la tecla CTRL y arrástrelo hasta el lugar donde quiere copiarla. Mantenga la tecla CTRL y el cursor del ratón presionados al mismo tiempo.

La función EXTRAE en Excel

La función EXTRAE en Excel nos ayuda a extraer caracteres que pertenecen a una cadena de texto. Lo único que debemos proporcionar es el número de caracteres que deseamos extraer y su punto de inicio dentro de la cadena de texto. Sintaxis de la función EXTRAE La función EXTRAE tiene 3 argumentos: Texto ( obligatorio ): La cadena de texto original de donde deseamos extraer los caracteres. Posición_inicial ( obligatorio ): El número de la posición que ocupa el primer carácter que deseamos extraer. El primer carácter del Texto tiene siempre la posición número 1. Núm_de_caracteres ( obligatorio ): El número de caracteres que se van a extraer del Texto a partir de la posición inicial. Ejemplo de la función EXTRAE Para probar la función EXTRAE en Excel realizaremos un ejemplo muy sencillo pero ilustrativo en el cual extraeré la palabra “ Archivo 5 ” del contenido de la celda A1. En la celda B1 comenzamos introduciendo la fórmula: =EXTRAE( Ya que el primer argumento...

Generar datos aleatorios con macro "Totalmente Gratis"

Has tu pedido por el correo electronico  solucionesmsexcelvba@gmail.com Los números aleatorios son utilizados en programas de simulación por computadora, en el muestreo estadístico, criptografía de datos y por supuesto en los juegos de azar. Cualquier área que necesite resultados impredecibles hará uso de los números aleatorios.

Asignar nombres a celdas o rangos

Asignar un nombre a un rango de celdas Estos nombres se pueden utilizar dentro de una fórmula para ayudar en la compresión de la misma posteriormente. Para asignar  un nombre a una celda sigue los siguientes pasos. Selecciona la celda o rango a la que asignarás un nombre y haz clic en el cuadro Nombre que se encuentra en el extremo izquierdo de la barra de fórmulas: Escribe el nombre que deseas y presiona Entrar. Otra manera de crear un nombre para un rango es desde la ficha Fórmulas y el botón Asignar nombre . Una vez que hayas seleccionado el rango de celdas oprime este botón y se mostrará el cuadro de diálogo Nombre nuevo : En la caja de texto Nombre coloca el nombre que asignarás a la celda o rango y oprime el botón Aceptar. Utilizar un nombre en una fórmula Como ejemplo final utilizaré el nombre que acabamos de crear dentro de una fórmula para que observes cómo Excel interpreta correctamente el nuevo nombre del rango, observa la barra de fórmul...

Lista para validación de datos en Excel

Cuando compartes tus libros de Excel con otras personas y ellos introducen información en las hojas que has preparado con tanto esfuerzo, es de suma importancia validar los datos de manera que puedas prevenir cualquier error con las fórmulas o alguna interpretación equivocada al momento de realizar un análisis de la información. Afortunadamente Excel tiene herramientas de validación de datos que nos permitirán validar la información al momento que es introducida en una celda. Este grupo de comandos se encuentra en la ficha Datos y dentro del grupo Herramientas de datos . En esta ocasión centraremos nuestra atención en una de las opciones de la Validación de datos que es conocida como la lista de validación de datos y que convierte una celda común en una lista de opciones de las cuales el usuario podrá elegir alguna. Beneficios de la lista de validación Antes de explicar la creación y uso de las listas de validación de datos, me gustaría dar un ejemplo de los beneficio...