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

Controlar base de datos de proveedores.

Has tu pedido por el correo electronico   solucionesmsexcelvba@gmail.com ¡Yo Te lo diseño de acuerdo a tus necesidades!

Consultar estatus de CFDI en el SAT desde VBA Excel

Si eres contador, auditor o trabajas día a día con CFDI´s, entonces esta herramienta es para ti. Si necesitas validar el estatus de un CFDI en el SAT basta con ingresar en la página del SAT https://verificacfdi.facturaelectronica.sat.gob.mx/ capturas los datos desde el portal del SAT como en la siguiente imagén... y listoooo...   Perooooooo..... Imagínate validar estatus de miles y miles de CFDI´s en el SAT es relativamente tedioso copiar y pegar uno por uno, luego capturar el CAPTCHA es aburrido no crees?, es por ello que tengo la mejor herramienta que te va ayudar a validar de forma masiva tus CFDI´s en el servidor del SAT, la herramienta esta hecha 100% en VBA Excel y ademas es muy fácil de utilizar. Si estas interesado, envíame un whatsapp al +52 967 151 5365 o también me puedes seguir en mi página de Facebook de igual manera me puedes dejar un mensaje.

Pasos a seguir para permitir que las macros de VBA se ejecuten en archivos

Las macros de internet se bloquearán de forma predeterminada en Office. Las macros de VBA son una forma común en que los actores malintencionados obtienen acceso para implementar malware y ransomware. Por tanto, para ayudar a mejorar la seguridad en Office, se ha cambiado el comportamiento predeterminado de las aplicaciones de Office para bloquear macros en archivos de Internet. Con este cambio, cuando los usuarios abren un archivo que procede de Internet (por ejemplo, datos adjuntos de correo electrónico) y ese archivo contiene macros, se muestra el siguiente mensaje:  Para que funcione las macros, hay que seguir estos pasos: Click de derecho al Archivo y propiedades:    y te aparecerá esta ventana, le activas el check para desbloquear, Aceptar y listo :   Importante: Realizar este proceso solamente si conoces el origen del archivo, no nos hacemos responsable si en algún momento sufre algún daño tu equipo.

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

La función ESPACIOS en Excel

La función ESPACIOS en Excel La función ESPACIOS en Excel remueve los espacios de un texto a excepción del espacio sencillo entre cada palabra. Si tenemos una base de datos en Excel muy grande y removemos los espacios excedentes de los textos podremos contribuir a minimizar el tamaño del archivo. Sintaxis de la función ESPACIOS La función ESPACIOS tiene un solo parámetro: Texto (obligatorio): El texto al que deseamos quitar los espacios excedentes. La función ESPACIOS removerá todos los espacios a la izquierda y a la derecha del texto y reducirá los espacios entre palabras a un solo espacio sencillo. Ejemplos de la función ESPACIOS En la siguiente fórmula podrás observar que estoy especificando un texto como argumento de la función ESPACIOS el cual tienen múltiples espacios al inicio y final del texto. ESPACIOS(”          texto simple     “) = “texto simple” El resultado de esta fórmula ser...

Validación masiva de RFC's de contribuyentes para el CFDI 4.0

Si eres Contador o has manejado la plataforma del SAT entonces creo que estamos hablando el mismo lenguaje, y como siempre Soluciones MS Excel VBA , busca automatizar tu trabajo y que tu día sea mucho mas productivo. Te dejo un archivo de Excel en donde puedes crear el archivo de texto de forma automatizada tal cual como solicita el SAT: El funcionamiento de esta herramienta es relativamente fácil de utilizar, basta con pegar la información a partir de la celda ( B1, C1 y D1 ) , en donde la celda: B = RFC C = Nombre D = Código Postal si no cumple con uno de estos criterios, nos marca el siguiente mensaje: Cumpliendo con los criterios ya mencionados, basta con darle Click en la opción Exportar: Y de forma automática genera el archivo de texto que se llama que por default lo guarda según en donde tengas esta herramienta.   Descargar Herramienta Nota: Probablemente te aparezca algún mensaje que la macro se ha bloqueado , y para que funcione la herramienta sigue los pasos que se en...