Convertir numeros a letras en excel

Para Convertir números a letras en excel, es necesario programar una macro, en muchos formatos contables, tales como facturas, cheques, recibos, etc… es necesario poner también la cantidad en letras, pero esto suele ser muy tedioso si la tarea debe hacerse muchas veces al día, así que seria interesante poder hacer esto de manera automática. Excel es una de las herramientas de oficina más usadas en el mundo, En su mayoría se da en las oficinas administrativas tanto de grandes empresas como de pequeños negocios, en muchas ocasiones es necesario implementar plantillas que nos ayuden un sistematizar nuestras labores, muchas de estas plantillas se relacionan con cantidades monetarias que se deben especificar tanto en numero como en letra, si se le da un uso constante a esta plantilla, Puede ser frustrante para quien la maneja, al Tener que estar cambiando con la cantidad de letra .. Ejemplos de uso :

  • facturación
  • remisiones
  • Pólizas cheque de
  • pagares
  • recibos de dinero .. etc

Por fortuna por excel trae la opción para programar con Visual Basic (macros en Excel) con la siguiente macro ya no sera necesario que estés tecleando las Cantidades con letra .. La sintaxis es muy simple .. = Letras (A1,1) El 1 es para la Denominación en pesos, = Letras (A1, 2) dos dolares para el es en .. A1 ponemos la Cantidad

Comparte para descargar archivo excel de ejemplo.


Este código pegarlo en un módulo de Visual Basic:

  1. presionar ALT+F11
  2. Clic derecho en VBAProject( nombre de tu archivo actual )
  3. insertar modulo
  4. pegar el código en ese modulo.

‘Funciones para convertir de números a letras ‘Llamada : Letras(Número,Formato) – Formato 1-Pesos, 2-Dólares Function Unidades(num, UNO) Dim U Dim Cad U = Array(“UN”, “DOS”, “TRES”, “CUATRO”, “CINCO”, “SEIS”, “SIETE”, “OCHO”, “NUEVE”) Cad = “” If num = 1 Then If UNO = 1 Then Cad = Cad & “UNO” Else Cad = Cad & “UN” End If Else Cad = Cad & U(num – 1) End If Unidades = Cad End Function Function Decenas(num1, res) Dim D1 D1 = Array(“ONCE”, “DOCE”, “TRECE”, “CATORCE”, “QUINCE”, “DIECISEIS”, “DIECISIETE”, _ “DIECIOCHO”, “DIECINUEVE”) D2 = Array(“DIEZ”, “VEINTE”, “TREINTA”, “CUARENTA”, “CINCUENTA”, “SESENTA”, _ “SETENTA”, “OCHENTA”, “NOVENTA”) If num1 > 10 And num1 < 20 Then Cad1 = D1(num1 – 10 – 1) Else Cad1 = D2((num1 \ 10) – 1) If (num1 \ 10) <> 2 Then If res > 0 Then Cad1 = Cad1 & ” Y ” Cad1 = Cad1 & Unidades(num1 Mod 10, 0) End If Else If res = 0 Then Cad1 = Cad1 & “E” Else Cad1 = Cad1 & “I” Cad1 = Cad1 & Unidades(num1 Mod 10, 0) End If End If End If Decenas = Cad1 End Function Function Cientos(num2) num3 = num2 \ 100 Select Case num3 Case 1 If num2 = 100 Then cad2 = “CIEN ” Else cad2 = “CIENTO ” End If Case 5 cad2 = “QUINIENTOS ” Case 7 cad2 = “SETECIENTOS ” Case 9 cad2 = “NOVECIENTOS ” Case Else cad2 = Unidades(num3, 0) & “CIENTOS ” End Select num2 = num2 Mod 100 If num2 > 0 Then If num2 < 10 Then cad2 = cad2 & Unidades(num2, num2) Else cad2 = cad2 & Decenas(num2, num2 Mod 10) End If End If Cientos = cad2 End Function Function Miles(num4) If (num4 >= 100) Then cad3 = Cientos(num4) Else If (num4 >= 10) Then cad3 = Decenas(num4, num4 Mod 10) Else cad3 = Unidades(num4, 0) End If End If cad3 = cad3 & ” MIL ” Miles = cad3 End Function Function Millones(cant) If cant = 1 Then ter = ” ” Else ter = “ES ” End If If (cant >= 1000) Then cantl = cantl & Miles(cant \ 1000) cant = cant Mod 1000 End If If cant > 0 Then If cant >= 100 Then cantl = cantl & Cientos(cant) Else If cant >= 10 Then cantl = cantl & Decenas(cant, cant Mod 10) Else cantl = cantl & Unidades(cant, 0) End If End If End If Millones = cantl & ” MILLON” & ter End Function Function decimales(numero As Single) As Integer Dim iaux As Integer iaux = numero – Application.Round(numero, 2) decimales = iaux End Function Function letras(cantm As Variant, ByVal mon As Integer) As String Dim cants1 As String, num1 As Variant, num2 As Variant num1 = cantm \ 1000000 num2 = cantm – (num1 * 1000000) cents = (num2 * 100) Mod 100 If cents = 0 Then cents1 = “00″ Else cents1 = Format(cents) End If cantm = cantm – (cents / 100) If cantm >= 1000000 Then cantlm = Millones(cantm \ 1000000) cantm = cantm Mod 1000000 End If If cantm > 0 Then If (cantm >= 1000) Then cantlm = cantlm & Miles(cantm \ 1000) cantm = cantm Mod 1000 End If End If If cantm > 0 Then If cantm >= 100 Then cantlm = cantlm & Cientos(cantm) Else If cantm >= 10 Then cantlm = cantlm & Decenas(cantm, cantm Mod 10) Else cantlm = cantlm & Unidades(cantm, 1) End If End If End If If mon = 1 Then letras = cantlm & ” PESOS ” & cents1 & “/100 M.N.” Else letras = cantlm & ” DOLARES ” & cents1 & “/100 U.S.D.” End If End Function

para usarlo en cualquier libro de tu PC, deberás poner el código en un módulo del libro PERSONALES

Para ser usado en un libro especifico deberás pegarlo en un módulo de ese libro en el Explorador de proyectos de VB. presionando ALT + F11 se adhiera A Uno de los módulos de VB.

formulas excel

Registrate a FormulasExcel

Recibir tips y noticias de formulas excel... Es gratis.

Comments

  1. Anonymous says

    EN LA HOJA CODIGO EN LA CELDA A25 EN DONDE DICE VEINTE QUITALE LA E QUE QUEDE “VEINT” Y ASI LO PEGAS EN VB Y YA TE QUEDA…

  2. Anonymous says

    EXCELENTE APORTE PERO HAY “UN PERO” ALGO NO HICE BIEN PERO CASUALMENTE ESCRIBI 120 Y ME ESCRIBIO ASI “CIENTO VEINTEE” POR LO DEMAS TODO MUY BIEN GRACIAS POR AYUDAR A LA GENTE DESINTERESADAMENTE

  3. Anonymous says

    EXCELENTE ESTIMADO AMIGO, ME ES MUY UTIL LA FORMULA DE ESCRIBIR NUMEROS EN LETRAS…. MUCHISIMAS GRACIAS POR TU COLABORACION DESINTERESADA….. OJALA SIGAN HABIENDO PERSONAS COMO UDS…. HASTA PRONTO.. UN AMIGO: JORGE VICTOR

  4. Anonymous says

    Buenas, estaría bien el macro que convierta a euros con los respectivos centimos ya que después de varias horas lo consigo instalar, pero las macros suelen ser a pesos

  5. Anonymous says

    hola necesito ayuda para ingresar una formula en excel. Lo que requiero es cuando escriba una cantidad con numero necesito que en otro campo me lo de en letras, por ejemplo: $ 12,715.50 y me lo de con letra en un celda: doce mil setecientos cincuenta pesos 50/100 espero alguien me ayude.

    gracias.

  6. Anonymous says

    hola necesito convertir una cifra en letra pero no puedo…. tengo q poner por ejemplo 8.7 a 10 es MB 7.4 a 8.6 B y asi sucesivamente pero no puedo
    me puedes ayudar por favor?

  7. Anonymous says

    El archivo NO contiene la contraseña que pide visual basic, aún teniendo todos los macros habilitados se ven tres hojas y ninguna contiene la contraseña

  8. Anonymous says

    HOLA NECESITO LA FORMULA PARA ESTABLECER EL TIEMPO DE SERVICIO DE UN TRABAJADOR DESDE LA FECHA DE INGRESO – MENOS LA FECHA DE EGRESO

  9. says

    el codigo esta en una de las hojas del libro, para que se vean todas las hojas tienes que habilitar las macros..

    si esa formula la estas poniendo en otro libro, tienes que pegar el codigo en un modulo de vb de ese libro (alt+f11 para abrir un modulo de vb)

    para que puedas usar la macro en cualquier libro de tu pc, deberas pegar el codigo en un modulo de vb del libro de macros PERSONAL, este sale en el menu que esta a la izquierda de la ventana del editor de vb.

    saludos

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Current day month ye@r *