En varias ocasiones me han preguntado si existe alguna forma de convertir en texto nuestro números, y aunque es un tema muy recurrido por todo internet, creo oportuno incluir aquí una de las funciones que más me han gustado entre las que he encontrado en el tiempo. Por supuesto existen muchas más versiones, unas más perfectas que otras...
En concreto, para resolver la duda de uno de los lectores, será suficiente con el código VBA de este post. Ojo, ya que la función sólo es válida para valores entre 0 y 999.999:
Incluiremos los siguientes procedimientos Function en uno de los módulos del Editor de VBA:
Aunque existen realmente dos funciones en este procedimiento, la función a aplicar será
=num2let(valor)
es ésta la que convierte a texto cualquier valor entre 0 y 999.9999.
Este código lo conseguí navegando hace algún tiempo, y encontré en algún foro de Excel, donde alguien (no puedo recordar quién, y lo siento de veras...) lo subió y compartió con todos... Gracias a esta persona!!
En concreto, para resolver la duda de uno de los lectores, será suficiente con el código VBA de este post. Ojo, ya que la función sólo es válida para valores entre 0 y 999.999:
Hola quiero saber si hay alguna formula que convierta los números en letras Ejemp.tengo un cuadro de notas y necesito que al colocar las Notas en una columna en número estas me las coloque en otro columna en letras. Ejemplo. Notas en letra 15 Quince 10 Diez 12 Doce 05 Cinco 09 Nueve |
Incluiremos los siguientes procedimientos Function en uno de los módulos del Editor de VBA:
Function num2let(importe) If Int(importe) = 1 Then final = " euro" Else final = " euros" If importe > 999 Then num2let = num2letras(Int(importe / 1000)) + " mil " num2let = num2let + num2letras(importe - Int(importe / 1000) * 1000) + final If Int(importe) = 0 Then num2let = "cero euros" If importe <> Int(importe) Then If (100 * (importe - Int(importe))) = 1 Then centfin = " céntimo." Else centfin = " céntimos." num2let = num2let + " con " + num2letras((importe - Int(importe)) * 100) + centfin End If End Function Function num2letras(importe) 'Pasa de numero a letras, importes entre 0 y 999 'Centena ---------------------------------------- centena2 = Int(importe / 100) Select Case centena2 Case 0: num2letras = "" Case 1: num2letras = "cien" Case 2: num2letras = "doscientos" Case 3: num2letras = "trescientos" Case 4: num2letras = "cuatrocientos" Case 5: num2letras = "quinientos" Case 6: num2letras = "seiscientos" Case 7: num2letras = "setecientos" Case 8: num2letras = "ochocientos" Case 9: num2letras = "novecientos" End Select 'Decena ---------------------------------------------- decena2 = Int((importe - centena2 * 100) / 10) If centena2 = 1 Then num2letras = num2letras + "to" Select Case decena2 Case 1: num2letras = num2letras + " diez" Case 2: num2letras = num2letras + " veinte" Case 3: num2letras = num2letras + " treinta" Case 4: num2letras = num2letras + " cuarenta" Case 5: num2letras = num2letras + " cincuenta" Case 6: num2letras = num2letras + " sesenta" Case 7: num2letras = num2letras + " setenta" Case 8: num2letras = num2letras + " ochenta" Case 9: num2letras = num2letras + " noventa" End Select 'Unidad ---------------------------------------------- unidad2 = Int((importe - centena2 * 100 - decena2 * 10)) If decena2 = 0 Then Select Case unidad2 Case 1: num2letras = num2letras + " un" Case 2: num2letras = num2letras + " dos" Case 3: num2letras = num2letras + " tres" Case 4: num2letras = num2letras + " cuatro" Case 5: num2letras = num2letras + " cinco" Case 6: num2letras = num2letras + " seis" Case 7: num2letras = num2letras + " siete" Case 8: num2letras = num2letras + " ocho" Case 9: num2letras = num2letras + " nueve" End Select End If If decena2 = 1 Then num2letras = Mid(num2letras, 1, Len(num2letras) - 4) Select Case unidad2 Case 0: num2letras = num2letras + " diez" Case 1: num2letras = num2letras + " once" Case 2: num2letras = num2letras + " doce" Case 3: num2letras = num2letras + " trece" Case 4: num2letras = num2letras + " catorce" Case 5: num2letras = num2letras + " quince" Case 6: num2letras = num2letras + " diceciseis" Case 7: num2letras = num2letras + " diecisiete" Case 8: num2letras = num2letras + " dieciocho" Case 9: num2letras = num2letras + " diecinueve" End Select End If If decena2 = 2 Then If unidad2 <> 0 Then num2letras = Mid(num2letras, 1, Len(num2letras) - 6) Select Case unidad2 Case 1: num2letras = num2letras + " veintiun" Case 2: num2letras = num2letras + " veintidos" Case 3: num2letras = num2letras + " veintitres" Case 4: num2letras = num2letras + " veinticuatro" Case 5: num2letras = num2letras + " veinticinco" Case 6: num2letras = num2letras + " veintiseis" Case 7: num2letras = num2letras + " veintisiete" Case 8: num2letras = num2letras + " veintiocho" Case 9: num2letras = num2letras + " veintinueve" End Select End If If decena2 > 2 Then Select Case unidad2 Case 1: num2letras = num2letras + " y un" Case 2: num2letras = num2letras + " y dos" Case 3: num2letras = num2letras + " y tres" Case 4: num2letras = num2letras + " y cuatro" Case 5: num2letras = num2letras + " y cinco" Case 6: num2letras = num2letras + " y seis" Case 7: num2letras = num2letras + " y siete" Case 8: num2letras = num2letras + " y ocho" Case 9: num2letras = num2letras + " y nueve" End Select End If If importe = 100 Then num2letras = "cien" End Function
Aunque existen realmente dos funciones en este procedimiento, la función a aplicar será
=num2let(valor)
es ésta la que convierte a texto cualquier valor entre 0 y 999.9999.
Este código lo conseguí navegando hace algún tiempo, y encontré en algún foro de Excel, donde alguien (no puedo recordar quién, y lo siento de veras...) lo subió y compartió con todos... Gracias a esta persona!!
Apreciable amigo Ismael y demás amigos del foro: al momento, yo aplico un codigo VB que encontré por la red y que también me reenvío algun amigo del ciberespacio, esta función convierte hasta cifras de nueve cifras y con decimales, solo que la función esta hecha para PESOS, si les sirve podría enviarsela solo habría que convertir los centavos a centimos y los pesos a EUROS o la moneda de uso en su país.: ejemplo:
ResponderEliminar999,999,888.25 devuelve el valor:
SON: ( NOVECIENTOS NOVENTA Y NUEVE MILLONES NOVECIENTOS NOVENTA Y NUEVE MIL OCHOCIENTOS OCHENTA Y OCHO PESOS 25/100 M.N.)
Y como ha sido de utilidad la función, GRACIAS a quien la creó y la COMPARTIO
Gracias
Saludos
Alexx
Los Mochis, Sinaloa, México.
Hola Alexx,
ResponderEliminarclaro, por favor, mándamela y la reviso.
Un cordial saludo
Muy buenas a todos
ResponderEliminarAl igual que la persona anterior, yo uso un código que encontré navegando por la red hace algunos años también. Está hecho para Euros, pesos, dólres y bolívares.
Si me das el correo te lo mando.
Un saludo
Si claro...
ResponderEliminarcualquier conocimiento nuevo es bienvenido!!
Mi correo es
excelforo@gmail.com
Un saludo y gracias
Hola, amigos, realmente necesito la fórmula para cantidades superiores al millón agradecería a quien me pueda enviar la fórmula adecuada
ResponderEliminarkritiko69@gmail.com
GRACIAS