Complemento para convertir número en letras con Excel 2007 y 2010

Regresar al Entradas
Números en letras en Excel

Complemento para convertir número en letras con Excel 2007 y 2010

Siendo Microsoft Excel una herramienta super completa, aun dista de ser perfecta, seguramente querrás hacer algo que no esta definido o no existe. Un ejemplo de esto es que no tiene una función que convierta el valor numérico de una celda en su forma de texto.

Lo bueno es que siempre hay quienes no se conforman con esto y desarrollan alguna solución. En este caso en forma de un complemento que incorpora la función numaletras, numaletras o nroenletras, según la fuente que se consulte, y que hace justamente eso. Seguidamente te dejo con el procedimiento que estás buscando.

Cómo instalar el complemento Número en Letras:

  1. Crea una carpeta con el nombre “Complementos del Usuario” dentro de aquella donde reside el Office:
  2. C:\Program Files\Microsoft Office\Complementos del Usuario
  3. Dentro de ella copia el archivo “Funcion-números-a-letras-mas-moneda.xla”
  4. Abre Office. En el menú “Archivo” busca la opción  “Opciones”
  5. Selecciona Complementos en el panel de la izquierda y luego el botón IR… que esta abajo a la derecha de Administrar <Complementos de Excel>
  6. Aparece otra ventana de diálogo,
  7. Aquí pulsa el botón Examinar…
  8. Navega la ventana que aparece en busca de aquella carpeta donde colocaste el archivo XLA, o sea:  «C:\Program Files\Microsoft Office\Complementos del Usuario»
  9. Allí selecciona al archivo en cuestión y luego “Aceptar”.
  10. Véase que aparece Tildada la primera opción que ahora es la que se corresponde con el complemento que acabamos de instalar.

Desde ahora ya se puede utilizar la función en cualquier celda de Excel.

Ahora puedes insertar una función en una celda usando el asistente.

Puedes usar la función directamente de la siguiente forma:

=NumeLetras(<celda donde está el número que queremos convertir a letras>;<un string que sirva en la sintaxis del texto resultante y que conecta con los decimales, puede usarse un “Y” o un “con”>;<un string que escribe la moneda deseada, en Venezuela puede usarse Bs. o Bolívares>;<0 para minúscula y 1 para mayúscula>)

OBSERVACION: solo fue probado hasta las versiones 2007 y 2010 de Microsoft Excel

Ejemplo:

En la celda A1 esta escrito el número 12345,67

En la celda C1 escribimos la función: =NumeLetras(A1;”con”;”Bolivares”;1)

Ahora como resultado de la función, en la celda C1 aparece escrito: DOCE MIL TRESCIENTOS CUARENTA Y CINCO CON 67/100 BOLIVARES

«Ya hay una mejor manera de hacer esto, y más fácil aún. La versión nueva de este post incluye un video explicándolo todo, para verlo…

Descarga el Complemento de:

Sitio #1 / Sitio #2

El modo de instalación es un aporte con el que intentamos facilitar la instalación.

Si el enlace se rompe por favor escribanos y trataremos de resolverlo.

Destacados en la tienda

ITSCA - Banner Medios de Pago

Con un clic ABRE UNA CUENTA GRATIS EN BINANCE, y empieza a pagar y recibir pagos con Criptomonedas Y Dólares Digitales.

(22) Comentarios

  • RANDALL Contestar

    HOLA NECESITO QUE ME APOYES FIJATE QUE COLOCO LA NOTA DE EVALUACION DE UN ESTUDIANTE PERO CON ESE CODIGO NUMLETRAS ME TRADUCE A LETRAS LA NOTA PERO NO NECESITO 00/100

    20 febrero, 2018 at 6:29 pm
  • Jair Gonzalez Contestar

    Muy bueno el complemento, lo logre hacer y funciona perfecto, gracias por el apoyo!!

    23 noviembre, 2017 at 6:19 pm
  • CARLA Contestar

    hola!! solo quiero saber como convertir un numero entero a texto.espero me ayudes 🙂

    20 junio, 2017 at 11:50 am
    • jpuccini Contestar

      Hola Carla, gracias por escribir. Creo que el post se explica suficientemente, Has leído las demás respuestas? para poder ayudarte mejor necesito saber que no entiendes?

      12 agosto, 2017 at 12:21 am
  • Norbis Contestar

    Buenos días, como hago para colocar en una celda una calificación y en la otra celda me aparezca en letras, las calificaciones las estoy tomando de sumar 1ero 2do y 3er lapso y divividirlo entre 3. cuando no me da números enteros no me lo hace es decir cuando la nota final es 13,6 no lo hace, con números exactos si.

    14 octubre, 2016 at 7:24 am
    • jpuccini Contestar

      Originalmente tanto el complemento como la función fue creada para usarse en temas monetarios tales como facturas, recibos, cheques y cosas así. De ahí que la parte decimal del número se exprese como una fracción que indica céntimos.

      En una respuesta anterior, coloqué la funcion que yo suelo usar y que funciona en todas las versiones de excel (recuerda que el complemento no funciona bien en la version 2013. Esta función basta con copiarla y pegarla en la hoja de excel donde requieras usarla.

      Supongo que la solucion que buscas esta editando la funcion para que el resultado no muestre la parte decimal como una fraccion y solo muestre el numerador de la misma.

      La edicion de dicha funcion requiere que conozcas o al menos entiendas el lenguaje usado (VBA) para que hagas los ajustes segun tu conveniencia.

      Espero haberte sido de ayuda.

      Mil gracas por visitarnos y escribirnos.

      14 octubre, 2016 at 1:11 pm
  • Indira Contestar

    necesito urgente el archivo por favor

    27 enero, 2016 at 7:57 pm
  • Eliecer Contestar

    Excelente tutorial! Muy bueno y bastante fácil de realizar, mis felicitaciones

    19 septiembre, 2015 at 7:05 pm
  • Al arim Contestar

    Ya lo habia echo anteriormente y hoy no me funciona para que verion es este archivo gracias

    22 agosto, 2015 at 6:30 pm
  • Carlos Blanco Contestar

    Hermano saludos, quisiera que me ayudaran con la formula exacta para la conversiones de numeros a texto numerico
    ya que he intentado en varias formas y no he podido. muchas gracias su contenido es muy interesante.

    15 julio, 2015 at 6:26 pm
  • José Arteaga Contestar

    Hola jpuccini, Muy buen Tutorial, agradecido por el aporte, al principio me costo porque la formula me daba error en los valores y al revisar la formula observe que el conector y la moneda deben ir colocados o enlazados a una celda, y así solucioné. De nuevo gracias por el aporte..

    2 julio, 2015 at 10:29 am
    • Yuskeyli Contestar

      hola! me puedes explciar como lo hiciste! por favor

      20 mayo, 2016 at 7:55 am
      • jpuccini Contestar

        Recomiendo leer bien la entrada del blog, creo que se explica muy detalladamente y paso a paso.

        14 junio, 2016 at 10:43 pm
  • Rosa Amaro Contestar

    Reciban un cordial saludo. Soy contador Público y hago liquidaciones de vacaciones y prestaciones sociales etc, siempre, me interesa de verdad poder instalar ese complemento en mi ordenador, pero como no soy técnica en informática me cuesta bastante; No se como crear el complemento en mi computadora hay un archivo así como comenta Marjorie que se me haga mas fácil. De verdad es muy útil la herramienta. Muy agradecida si me pueden ayudar. Gracias y mil disculpas.

    27 mayo, 2015 at 5:19 pm
    • jpuccini Contestar

      Hola Rosa, gracias por escribir. Los links de descarga ya han sido corregidos. Descarga el complemento y sigue los pasos descritos arriba y listo.

      27 mayo, 2015 at 7:59 pm
  • Marjorie Contestar

    EL LINK NO SE ABRE, Y PUES ME INTERESA ESTE COMPLEMENTO….SI ME LO PUEDES ENVIAR… GRACIAS.

    21 mayo, 2015 at 8:32 am
    • jpuccini Contestar

      El complemento te lo envio al correo que dejaste.
      Gracias por escribirnos,a la brevedad posible arreglaremos el link.

      21 mayo, 2015 at 1:59 pm
  • Luis Arias Contestar

    Un saludo cordial:
    Saben de algo similar, pero paa Office 2013?
    Gracias anticipadas

    20 mayo, 2015 at 3:01 pm
    • jpuccini Contestar

      En office 2013 lo que suelo hacer es copiar y pegar toda una funcion de numero en letras como un script de VBA dentro de excel en cada archivo desde donde lo requiero.

      Primero habilita el menú desarrollador en las opciones de excel / personalizar la cinta de opciones.
      Luego abre el editor de VBA (Alt+F11)
      y pega la siguiente funcion:

      Public Function NroEnLetras(ByVal curNumero As Double, Optional blnO_Final As Boolean = True) As String
      ‘Devuelve un número expresado en letras.
      ‘El parámetro blnO_Final se utiliza en la recursión para saber si se debe colocar
      ‘la «O» final cuando la palabra es UN(O)
      Dim dblCentavos As Double
      Dim lngContDec As Long
      Dim lngContCent As Long
      Dim lngContMil As Long
      Dim lngContMillon As Long
      Dim strNumLetras As String
      Dim strNumero As Variant
      Dim strDecenas As Variant
      Dim strCentenas As Variant
      Dim blnNegativo As Boolean
      Dim blnPlural As Boolean

      If Int(curNumero) = 0# Then
      strNumLetras = «CERO»
      End If

      strNumero = Array(vbNullString, «UN», «DOS», «TRES», «CUATRO», «CINCO», «SEIS», «SIETE», _
      «OCHO», «NUEVE», «DIEZ», «ONCE», «DOCE», «TRECE», «CATORCE», _
      «QUINCE», «DIECISEIS», «DIECISIETE», «DIECIOCHO», «DIECINUEVE», _
      «VEINTE»)

      strDecenas = Array(vbNullString, vbNullString, «VEINTI», «TREINTA», «CUARENTA», «CINCUENTA», «SESENTA», _
      «SETENTA», «OCHENTA», «NOVENTA», «CIEN»)

      strCentenas = Array(vbNullString, «CIENTO», «DOSCIENTOS», «TRESCIENTOS», _
      «CUATROCIENTOS», «QUINIENTOS», «SEISCIENTOS», «SETECIENTOS», _
      «OCHOCIENTOS», «NOVECIENTOS»)

      If curNumero < 0# Then blnNegativo = True curNumero = Abs(curNumero) End If If Int(curNumero) <> curNumero Then
      dblCentavos = Abs(curNumero – Int(curNumero))
      curNumero = Int(curNumero)
      End If

      Do While curNumero >= 1000000#
      lngContMillon = lngContMillon + 1
      curNumero = curNumero – 1000000#
      Loop

      Do While curNumero >= 1000#
      lngContMil = lngContMil + 1
      curNumero = curNumero – 1000#
      Loop

      Do While curNumero >= 100#
      lngContCent = lngContCent + 1
      curNumero = curNumero – 100#
      Loop

      If Not (curNumero > 10# And curNumero <= 20#) Then Do While curNumero >= 10#
      lngContDec = lngContDec + 1
      curNumero = curNumero – 10#
      Loop
      End If

      If lngContMillon > 0 Then
      If lngContMillon >= 1 Then ‘si el número es >1000000 usa recursividad
      strNumLetras = NroEnLetras(lngContMillon, False)
      If Not blnPlural Then blnPlural = (lngContMillon > 1)
      lngContMillon = 0
      End If
      strNumLetras = Trim(strNumLetras) & strNumero(lngContMillon) & » MILLON» & _
      IIf(blnPlural, «ES «, » «)
      End If

      If lngContMil > 0 Then
      If lngContMil >= 1 Then ‘si el número es >100000 usa recursividad
      strNumLetras = strNumLetras & NroEnLetras(lngContMil, False)
      lngContMil = 0
      End If
      strNumLetras = Trim(strNumLetras) & strNumero(lngContMil) & » MIL »
      End If

      If lngContCent > 0 Then
      If lngContCent = 1 And lngContDec = 0 And curNumero = 0# Then
      strNumLetras = strNumLetras & «CIEN»
      Else
      strNumLetras = strNumLetras & strCentenas(lngContCent) & » »
      End If
      End If

      If lngContDec >= 1 Then
      If lngContDec = 1 Then
      strNumLetras = strNumLetras & strNumero(10)
      Else
      strNumLetras = strNumLetras & strDecenas(lngContDec)
      End If

      If lngContDec >= 3 And curNumero > 0# Then
      strNumLetras = strNumLetras & » Y »
      End If
      Else
      If curNumero >= 0# And curNumero <= 20# Then strNumLetras = strNumLetras & strNumero(curNumero) If curNumero = 1# And blnO_Final Then strNumLetras = strNumLetras & "O" End If If dblCentavos > 0# Then
      strNumLetras = Trim(strNumLetras) & » CON » & Format$(CInt(dblCentavos * 100#), «00») & «/100»
      End If
      NroEnLetras = strNumLetras
      Exit Function
      End If
      End If

      If curNumero > 0# Then
      strNumLetras = strNumLetras & strNumero(curNumero)
      If curNumero = 1# And blnO_Final Then
      strNumLetras = strNumLetras & «O»
      End If
      End If

      If dblCentavos > 0# Then
      strNumLetras = strNumLetras & » CON » + Format$(CInt(dblCentavos * 100#), «00») & «/100»
      End If

      NroEnLetras = IIf(blnNegativo, «(» & strNumLetras & «)», strNumLetras)
      End Function

      Por ultimo, simplemente referencia la funcion desde la celda donde quieres el resultado escribiendo por ejemplo:
      =nroenletras(A1,0)

      asumiendo que en A1 tengas el numero que quieres convertir a letras.

      Gracias por visitarnos y escribir.

      21 mayo, 2015 at 2:10 pm

Deja una respuesta

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

Regresar al Entradas
Acabas de añadir este producto al carrito:

× Whatsapp