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!

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 ...

¿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.

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.