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:
- Crea una carpeta con el nombre “Complementos del Usuario” dentro de aquella donde reside el Office:
- C:\Program Files\Microsoft Office\Complementos del Usuario
- Dentro de ella copia el archivo “Funcion-números-a-letras-mas-moneda.xla”
- Abre Office. En el menú “Archivo” busca la opción “Opciones”
- 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>
- Aparece otra ventana de diálogo,
- Aquí pulsa el botón Examinar…
- 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»
- Allí selecciona al archivo en cuestión y luego “Aceptar”.
- 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.
Más sobre excel:
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:
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
Con un clic ABRE UNA CUENTA GRATIS EN BINANCE, y empieza a pagar y recibir pagos con Criptomonedas Y Dólares Digitales.
Más sobre numaletras:
(22) Comentarios
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
Lamento la tardanza… espero aun te sirva.
En esta direccion publiqué otra forma de implementar la funcion de numeros en letras en excel, esta vez lo hice en video. Ahi te lo explico mejor.
Link: https://www.itsca.net/como-convertir-numeros-en-letras-en-excel/
Muy bueno el complemento, lo logre hacer y funciona perfecto, gracias por el apoyo!!
Me contenta que te haya servido, no dejes de ver como se logra lo mismo usando macros, aqui te dejo el enlace a esta otra entrada, ya mas reciente que te lo muestra en video https://www.itsca.net/como-convertir-numeros-en-letras-en-excel/
Saludos y gracias por escribir.
hola!! solo quiero saber como convertir un numero entero a texto.espero me ayudes 🙂
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?
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.
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.
necesito urgente el archivo por favor
Indira, al final del post encontrarás dos links desde donde podras acceder al archivo que solicitas.
El link original desde donde se tomo el archivo es: http://www.excelnegocios.com/wp-content/uploads/2011/07/Funcion-números-a-letras-mas-moneda.xla
Nuestro link es: http://www.itsca.net/download/Funcion-numeros-a-letras-mas-moneda.rar
Espero te sirva. Gracias por escribir.
Excelente tutorial! Muy bueno y bastante fácil de realizar, mis felicitaciones
Ya lo habia echo anteriormente y hoy no me funciona para que verion es este archivo gracias
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.
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..
hola! me puedes explciar como lo hiciste! por favor
Recomiendo leer bien la entrada del blog, creo que se explica muy detalladamente y paso a paso.
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.
Hola Rosa, gracias por escribir. Los links de descarga ya han sido corregidos. Descarga el complemento y sigue los pasos descritos arriba y listo.
EL LINK NO SE ABRE, Y PUES ME INTERESA ESTE COMPLEMENTO….SI ME LO PUEDES ENVIAR… GRACIAS.
El complemento te lo envio al correo que dejaste.
Gracias por escribirnos,a la brevedad posible arreglaremos el link.
Un saludo cordial:
Saben de algo similar, pero paa Office 2013?
Gracias anticipadas
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.