Ok, ya para entrar en el asunto de explicar cómo se van a convertir los números a letras en Excel les diré que ahora van usar la función
=letras(#COL,#FILA)
en cualquier celda de Excel, pero previamente deberán haber creado un método o macro que contenga el código que les mostraré a continuación.Antes que nada y para aquellos que no les gusta buscar mucho por todos lados, les haré una breve explicacioncita de como entrar al editor de Visual Basic de Excel. Yo se que a veces suena tonto y ridículo explicar esto pero los que ya saben no necesitan saber leer esta parte ya que es dirigido a los principiantes o personas no acostumbradas a las interfaces de programación.
Ingresar al Editor de Visual Basic en Excel
En Office 2003, Office XP, Office 2000, etc, singa estos pasos:
- Ir al menú "Herramientas"
- Ir a "Macro"
- Seleccionar "Editor de Visual Basic"
Luego que entren al Editor de Visual Basic seleccionen el libro en el que vayan a necesitar la función que veremos luego y vayan al menú:
- Insertar
- Módulo
Luego pegan todo el código y después lo guardan y cierran el Editor de Visual Basic. Aclaro de manera especial que si es un libro nuevo en donde van a guardar el código, Excel automáticamente pedirá que se guarde el libro en donde quedará la macro.
Y en la ventanita que se abra pegaran el código siguiente (también pueden hacer click desde ya en "copy to clipboard" para copiar todo este texto)
Dim Texto
Dim Millones
Dim Miles
Dim Cientos
Dim Decimales
Dim Cadena
Dim CadMillones
Dim CadMiles
Dim CadCientos
Dim caddecimales
Texto = Round(Numero, 2)
Texto = FormatNumber(Texto, 2)
Texto = Right(Space(14) & Texto, 14)
Millones = Mid(Texto, 1, 3)
Miles = Mid(Texto, 5, 3)
Cientos = Mid(Texto, 9, 3)
Decimales = Mid(Texto, 13, 2)
CadMillones = ConvierteCifra(Millones, False)
CadMiles = ConvierteCifra(Miles, False)
CadCientos = ConvierteCifra(Cientos, True)
caddecimales = ConvierteDecimal(Decimales)
If Trim(CadMillones) > "" Then
If Trim(CadMillones) = "UN" Then
Cadena = CadMillones & " MILLON"
Else
Cadena = CadMillones & " MILLONES"
End If
End If
If Trim(CadMiles) > "" Then
If Trim(CadMiles) = "UN" Then
CadMiles = ""
Cadena = Cadena & "" & CadMiles & "MIL"
CadMiles = "UN"
Else
Cadena = Cadena & " " & CadMiles & " MIL"
End If
End If
If Trim(CadMiles) > "001" Then
CadMiles = "MIL"
End If
If Decimales = "00" Then
If Trim(CadMillones & CadMiles & CadCientos & caddecimales) = "UN" Then
Cadena = Cadena & "UNO "
Else
If Miles & Cientos = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos)
Else
Cadena = Cadena & " " & Trim(CadCientos)
End If
letra = Trim(Cadena)
End If
Else
If Trim(CadMillones & CadMiles & CadCientos & caddecimales) = "UN" Then
Cadena = Cadena & "UNO " & "CON " & Trim(caddecimales)
Else
If Millones & Miles & Cientos & Decimales = "000000" Then
Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "/100 M.N."
Else
Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "/100 M.N."
End If
letra = Trim(Cadena)
End If
End If
End Function
Function ConvierteCifra(Texto, IsCientos As Boolean)
Dim Centena
Dim Decena
Dim Unidad
Dim txtCentena
Dim txtDecena
Dim txtUnidad
Centena = Mid(Texto, 1, 1)
Decena = Mid(Texto, 2, 1)
Unidad = Mid(Texto, 3, 1)
Select Case Centena
Case "1"
txtCentena = "CIEN"
If Decena & Unidad <> "00" Then
txtCentena = "CIENTO"
End If
Case "2"
txtCentena = "DOSCIENTOS"
Case "3"
txtCentena = "TRESCIENTOS"
Case "4"
txtCentena = "CUATROCIENTOS"
Case "5"
txtCentena = "QUINIENTOS"
Case "6"
txtCentena = "SEISCIENTOS"
Case "7"
txtCentena = "SETECIENTOS"
Case "8"
txtCentena = "OCHOCIENTOS"
Case "9"
txtCentena = "NOVECIENTOS"
End Select
Select Case Decena
Case "1"
txtDecena = "DIEZ"
Select Case Unidad
Case "1"
txtDecena = "ONCE"
Case "2"
txtDecena = "DOCE"
Case "3"
txtDecena = "TRECE"
Case "4"
txtDecena = "CATORCE"
Case "5"
txtDecena = "QUINCE"
Case "6"
txtDecena = "DIECISEIS"
Case "7"
txtDecena = "DIECISIETE"
Case "8"
txtDecena = "DIECIOCHO"
Case "9"
txtDecena = "DIECINUEVE"
End Select
Case "2"
txtDecena = "VEINTE"
If Unidad <> "0" Then
txtDecena = "VEINTI"
End If
Case "3"
txtDecena = "TREINTA"
If Unidad <> "0" Then
txtDecena = "TREINTA Y "
End If
Case "4"
txtDecena = "CUARENTA"
If Unidad <> "0" Then
txtDecena = "CUARENTA Y "
End If
Case "5"
txtDecena = "CINCUENTA"
If Unidad <> "0" Then
txtDecena = "CINCUENTA Y "
End If
Case "6"
txtDecena = "SESENTA"
If Unidad <> "0" Then
txtDecena = "SESENTA Y "
End If
Case "7"
txtDecena = "SETENTA"
If Unidad <> "0" Then
txtDecena = "SETENTA Y "
End If
Case "8"
txtDecena = "OCHENTA"
If Unidad <> "0" Then
txtDecena = "OCHENTA Y "
End If
Case "9"
txtDecena = "NOVENTA"
If Unidad <> "0" Then
txtDecena = "NOVENTA Y "
End If
End Select
If Decena <> "1" Then
Select Case Unidad
Case "1"
If IsCientos = False Then
txtUnidad = "UN"
Else
txtUnidad = "UNO"
End If
Case "2"
txtUnidad = "DOS"
Case "3"
txtUnidad = "TRES"
Case "4"
txtUnidad = "CUATRO"
Case "5"
txtUnidad = "CINCO"
Case "6"
txtUnidad = "SEIS"
Case "7"
txtUnidad = "SIETE"
Case "8"
txtUnidad = "OCHO"
Case "9"
txtUnidad = "NUEVE"
End Select
End If
ConvierteCifra = txtCentena & " " & txtDecena & txtUnidad
End Function
Function ConvierteDecimal(Texto)
Dim Decenadecimal
Dim Unidaddecimal
Dim txtDecenadecimal
Dim txtUnidaddecimal
Decenadecimal = Mid(Texto, 1, 1)
Unidaddecimal = Mid(Texto, 2, 1)
Select Case Decenadecimal
Case "1"
txtDecenadecimal = "DIEZ"
Select Case Unidaddecimal
Case "1"
txtDecenadecimal = "ONCE"
Case "2"
txtDecenadecimal = "DOCE"
Case "3"
txtDecenadecimal = "TRECE"
Case "4"
txtDecenadecimal = "CATORCE"
Case "5"
txtDecenadecimal = "QUINCE"
Case "6"
txtDecenadecimal = "DIECISEIS"
Case "7"
txtDecenadecimal = "DIECISIETE"
Case "8"
txtDecenadecimal = "DIECIOCHO"
Case "9"
txtDecenadecimal = "DIECINUEVE"
End Select
Case "2"
txtDecenadecimal = "VEINTE"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "VEINTI"
End If
Case "3"
txtDecenadecimal = "TREINTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "TREINTA Y "
End If
Case "4"
txtDecenadecimal = "CUARENTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "CUARENTA Y "
End If
Case "5"
txtDecenadecimal = "CINCUENTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "CINCUENTA Y "
End If
Case "6"
txtDecenadecimal = "SESENTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "SESENTA Y "
End If
Case "7"
txtDecenadecimal = "SETENTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "SETENTA Y "
End If
Case "8"
txtDecenadecimal = "OCHENTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "OCHENTA Y "
End If
Case "9"
txtDecenadecimal = "NOVENTA"
If Unidaddecimal <> "0" Then
txtDecenadecimal = "NOVENTA Y "
End If
End Select
If Decenadecimal <> "1" Then
Select Case Unidaddecimal
Case "1"
txtUnidaddecimal = "UNO"
Case "2"
txtUnidaddecimal = "DOS"
Case "3"
txtUnidaddecimal = "TRES"
Case "4"
txtUnidaddecimal = "CUATRO"
Case "5"
txtUnidaddecimal = "CINCO"
Case "6"
txtUnidaddecimal = "SEIS"
Case "7"
txtUnidaddecimal = "SIETE"
Case "8"
txtUnidaddecimal = "OCHO"
Case "9"
txtUnidaddecimal = "NUEVE"
End Select
End If
If Decenadecimal = 0 And Unidaddecimal = 0 Then
ConvierteDecimal = ""
Else
ConvierteDecimal = txtDecenadecimal & txtUnidaddecimal
End If
End Function
Para el caso de Office 2007 que en algunas instalaciones no trae consigo habilitado la pestaña (tab o ficha) "Programador" debemos habilitarla haciendo click en el "botón de Office" y luego clickar las "Opciones de Excel" tal como se ve en los siguientes dibujos, y luego marcar la casilla de verificación "Mostrar ficha Programador en la cinta de Opciones". Al hacer esto verán que aparecerá al final de las demás fichas de Excel la ficha que necesitamos para ingresar al Editor de Visual Basic que es el primer icono que aparece a la izquierda con el texto "Visual Basic".
Para ver un poco más de detalle de como insertar un nuevo módulo en el libro en que queramos la función pueden hacer click aquí para leer un poco más al respecto y complementar este procedimiento.
Una vez hecho todo lo anterior no queda más que guardar en el Editor de Visual Basic, cerrarlo, y luego probar que la función haga su trabajo en una celda cualquiera, asi:
Supongamos que la celda A1 tiene el número 15,958.76
Llamamos a la función letras en la celda A2:
=letra(A1)
Y aparecerá el resultado:
Importantes notas a destacar
:- Puesto que la función muestra PESOS como moneda local no quiere decir que así debe ser siempre, ya que esto debe ser cambiado a cualquiera que sea nuestra moneda local, ya sean DOLARES, QUETZALES, EUROS, SOLES, ETC., al igual que las letras M.N. (Moneda Nacional) que aparece al final del texto. Para efectuar este cambio nada más deberán reemplazar la palabra
PESOS
de las filas número 61 y 63 por el nombre de su moneda pero sin borrar nada más, y de igual forma, al final de esas mismas líneas de texto apareceM.N.
el cual pueden cambiar por lo que mejor les convenga. - Me ha pasado en algunas situaciones que he querido ver el Editor de Visual Basic en Office 2007 y simplemente no está porque dependiendo de la instalación que se haya hecho, no siempre se instala por lo cual deberán tener a la mano el CD de instalación de Office 2007 y añadir ese complemento.
Como les mencionaba al principio, los créditos no son míos, no he hecho yo está importante función, nada más me he limitado a compartirla con todos añadiendo algo de contenido. Yo vi hace mucho tiempo el código en La Web del Programador y puesto que la primera vez que publiqué mi ejemplo tenía cierto problema con ciertas cantidades, he decidido poner este nuevo método, aunque si quieren comentar, pues bienvenidos sean sus comentarios.
MARIO MUY INTERESANTE Y ME PARECE QUEES UN POCO MAS LARGO PERO EL FIN ES LO QUE SE BUSCA, MUCHAS GRACIAS Y SIGUE ASI
ResponderEliminaresta muy padre esta macro, soló que hay un detalle ¿que pasa cuando son números cerrados y números menores de 10; ejem: 1,2,3,4,5,6,7,8,9,10,11,12,etc, etc al 100 y de ahí de cien en cien? para explicarme mejor si pongo el # 1 deberia aparecer (UN PESO 00/100 M.N.) y en el caso de 100 ó MIL (CIEN PESOS 00/100 M.N.) (MIL PESOS 00/100 M.N.) lo cual no es así...... Me podrías ayudar por favor??
ResponderEliminarPerdón me falto un cero es antes de 100..
ResponderEliminarlupsi08:
ResponderEliminarpara solucionar tu problema tienes que corregir la linea 43...
dice:
If Decimales = "00" Then
debe decir:
If Decimales = "" Then
sólo quita los dos ceros que estan dentro de las comillas...
GRACIAS ME SIRVIO DE MUCHO, ME PUEDEN AYUDAR QUIERO QUE LA CANTIDAD EN LETRAS APAREZCA ENTRE PATENTESIS $10.00 (DIEZ PESOS 00/100 M.N.) Y SI TENGO QUE MODIFICARLE ALGO DONDE DEBO DE ENTRAR EN EL MODULO...GRACIAS
ResponderEliminarHice varias pruebas y es mas efectiva, pero solo un caso no funcionó, escribí 1,000,000.00 y queda la celda en blanco, creo que no hay ningun comando para esta cifra.
ResponderEliminarComo lo inserto?
Además siempre pone "uno" en lugar de "UN".
ResponderEliminarTodo eso esta excelente, pero mi duda es:
ResponderEliminaren el caso de calificaciones los decimales suben al siguiente numero entero al menos que sea reprobatoria no sube: ejemplo:
6.5 = 7
8.8 = 9
pero si es reprobatoria no se incrementa:
5.9 = 5
5.6 = 5
donde debo modificar para que se pueda redondear?
de antemanogracias.
muy interesante y muy bien hecho
ResponderEliminarcausa mil gracias por publicar y explicar esta funcion me has salvado la vida menos mal que hay personas como tu que no son eqoistas muchas gracias
ResponderEliminarcomo hago para que me deje instalarar el visual basic me sale esto Memoria insuficiente
ResponderEliminarGracias
Probablemente sea un error de Windows o quien sabe si tu maquina no posee suficientes recursos, o quiza Office necesite ser reinstalado. Prueba reinstalar Office en version completa.
ResponderEliminar:???: buena aportacion para los q trabajan Excel, aunque, como puedo hacerle para que, cada ves que abra Excel o un nuevo libro, me carge el Codigo o llevarlo a una Lap.
ResponderEliminarsaludos.
Para hacer que cargue el código cada vez que abras Excel, necesitas insertar el módulo en el libro de macros PERSONAL.XLS de Excel, que es un libro especial de Excel que se abre cada vez que inicias Excel. Este libro de macros personal sirve sólo para eso, guardar código que necesitas que esté disponible cada vez que abras Excel.
ResponderEliminarPor otra parte, puedes insertar el código en un módulo en el libro en donde vayas a trabajar para que esté disponible incluso si mueves el archivo a diferentes máquinas. Sólo te advertiría que el nivel de seguridad de macros debe estar en "bajo" para que el código se ejecute sin ningún problema o de lo contrario, recibirás un mensaje de advertencia en donde dice que el libro contiene macros que podrían poner en riesgo la seguridad, aunque te diré que el código aqui presentado es 100% seguro y no es malicioso, simplemente sirve a su propósito: convertir números a letras.
Busca en este mismo blog algo sobre el libro de macros personal y otras cosas relacionadas que he escrito, te daría los enlaces pero ando corto de tiempo asi que has una búsqueda.
Saludos y buena suerte BTito.
aun no lo he logrado no me funciona ...porfa necesito ayuda :cry:
ResponderEliminardice que hay un error de complicacion: que se ha detectado un nombre ambiguo
ResponderEliminarpasa con las siguietes palabras
letra
convietedecimal
conviertecifra
y no se como modificarlo para que logre funcionar
y tambien con esta
ResponderEliminarFunction RecurseNumber(N As Long) As String
help me!!!!
No se lo que has hecho André, pero acabo de probarlo y funciona correctamente. Probaste insertar un módulo nuevo en el Editor de Visual Basic, y pegaste ahi éste código??.
ResponderEliminarLee cuidadosamente y pruebalo. Recuerda: Insertar un Módulo Nuevo y pegar.
hola si me funciona pero un ejemplo si pongo 100.25 me aparece correctamente "cien pesos con 25/100 m.n.) pero si pongo 100 solo me aparece cien sin la palabra pesos ni 00/100 m.n de antemano gracias por la ayuda
ResponderEliminarBuen dia,
ResponderEliminarTe Cuento que me acabas de salvar la vida con esto, pero tengo una duda, en mi trabajo tengo que t5rabajar con miles de millones, es decir ; 79.326.458.782,16 pero al aplicar la formula solo me toma hasta millones y no pasa de ahi .... me puedes ayudar ... Gracias
MARIO, MIS SINCERAS FELICITACIONES POR ESTE PROGRAMA, SI QUE ES DE MUCHA UTILIDAD.
ResponderEliminarQUISIERA QUE POR FAVOR ME AYUDARAS CON LO SIGUIENTE:
EN MI CASO, EN EL RESULTADO DE PASAR DE NUMEROS A LETRAS, BEDE SALIR LA PALABRA PESOS M/CTE...PERO TENGO UN PROBLEMA CUANDO ESCRIBO UN NUMERO CERRADO COMO POR EJEMPLO: $25.000.000 = AL TRADUCIR EN LETRAS, ME SALE= VEINTICINCO MILLONES PESOS M/CTE....ME HACE FALTA LA PALABRA "DE", ANTES DE LA PALABRA PESOS.....DE ANTEMANO LE AGRADEZCO SU VALIOSA COLABORACION.
MARIO BUENOS DIAS....ESTE PROGRAMA ES BASTANTE UTIL Y MUY COMPLETO, PERO QUISIERA QUE POR FAVOR ME AYUDARAS CON OTRA INCONSISTENCIA=
ResponderEliminar-CUANDO QUIERO CONVERTIR LA CIFRA 1.000.000 NO ME SALE NADA (SALE O)
DE NUEVO GRACIAS POR ESTE UTIL PROGRAMA Y DE ATEMANO LE AGRADEZCO POR SU VALIOSA COLABORACION.
Buen dia
ResponderEliminarProbe la funciones estan muy bien
solo tengo el siguiente problema con los numero enteros no me aparece "00/100 M.N"
probe cambia como lo suguiere lo siguiente
(( If Decimales = “00? Then
(( debe decir:
(( If Decimales = “” Then
PERO NO CAMBIA LA FORMA. CONTINUA SIN COLOCAR 00/100M.N.
QUE PUEDO HACER ???
No responde al valor de 1.000.000
ResponderEliminarAdemas necesito que salga por ej: 21 = veintiun pesos no veintiuno pesos
de igual forma 4.000.000 cuatro millones de pesos no cuatro millones pesos.......se que puedes ojala tenga pronta respuesta de esto...la idea es perfeccionarlo
He copiado la macro, pero al ejecutarla me dice: "se esperaba fin de la funcion".¿ que estoy haciendo mal? ayudenme por favor
ResponderEliminarGracias
Xuliux , desde México
hola mario, primero kiero felicitarte x tu aporte q haces.
ResponderEliminarmas, tengo una duda, x ejemplo si yo pongo en una celda 100, entonces la formula solo te da la palabra CIEN, mas no como esperaba q saliera: CIEN NUEVOS SOLES 00/100 MN, esto solo es en los casos en q pongo un numero entero sin decimales, q es lo q tengo q hacer para q todo el texto salga completo?, agradecere tu respuesta.
Encerio te agradezco, y yo que me creia bueno en excel pero tu eres una eminencia te agradezco mucho encerio.. enseñame mas... gracias, gracias
ResponderEliminarMuchas gracias, excelente y facil de usa. Douglas Espindola - Bogota Colombia
ResponderEliminar:lol:
QUE TALAMIGO: por lo que veo todos saben de lo que hablan, sin embargo hay personas como yo que estamos en cero y he tratado de hacer todo tal y como lo indicas pero no puedo hacer funcionar el macro, pudieras explicarlo con naranjas y manzanaz, es decir, sin omitir paso alguno?. Gracias de antemano.
ResponderEliminargracias por tener ese corazon de colaborador, pero a mi no me ha funcionado ¿ que estare haciendo mal?.
ResponderEliminarte agradesco si puedes enviarme un archivo ebn excel con el codigo incluido para intentarlo de nuevo
como le hago para que me salga entre parentesis las letras
ResponderEliminarcomo le hago para que la macros me funciones cada que abra un libro de excel
ResponderEliminarmuy bueno, es lo que estaba buscando. Pero tengo un pequeño problema. :oops:
ResponderEliminarLa funcion no se graba con el archivo, o sea que cuando grabo el archivo y lo cierro, cuando lo vuelvo a abrir y quiero utilizar la funcion, me dice #¿NOMBRE?. Que me aconsejan? :shock:
Tengo Microsoft Exel 2007.
Muchas gracias, su código me ayudó bastante y la explicación es lo suficientemente clara, ahora puedo emitir los cheques con mayor agilidad y sin errores.
ResponderEliminarMil gracias :mrgreen:
me gustaria que me mandaran guias de como hacer macros desde la mas facil hasta la mas dificil o si hay algun libro donde lo puedo conseguir y cual es el autor
ResponderEliminarbueno me despido y la verdad tienen muy buenos tips
Gracias por compartirnos de manera desinteresada tus conocimientos. Una herramienta muy útil. Las explicaciones muy claras. Felicidades.
ResponderEliminarLA VERDAD SOY NUEVO EN ESTO Y SE ME HACE DIFICIL ENTENDER COMO FUNCIONA ESTA MACRO SOY SOLO UN AFICIONADO Y ME GUSTARIA SABER COMO FUNCIONA LA CONVERSIÓN DE NUMEROS A LETRAS EN EXCEL TAL VEZ ME PODRIAS ENVIAR UN EJEMPLO EN EL MISMO PROGRAMA PARA QUE LO PUEDA COMPRENDER DE ANTEMANO TE LO AGRADECERIA DEMASIADO Y QUE DIOS TE SIGA DANDO SABIDURIA
ResponderEliminargracias por tener ese corazon de colaborador, pero a mi no me ha funcionado ¿ que estare haciendo mal?.
DIOS TE BENDIGA MI MAIL ES FREDYGINES@HOTMAIL.COM
He copiado tu macro y funciona perfectamente (es la macro que tiene 298 items), pero necesito un favor....cuando se pone una valor sin decimales no a parece la siguiente leyenda 00/100 y yo necesito ayuda sobre esto, porque si necesito que me aparesca dicha leyenda...me podrian a yudar por favor.
ResponderEliminarPara que ponga el valor sin decimales correctamente, lean por favor más arriba viene la solución.
ResponderEliminarAhora yo necesito ayuda, cuando se pone unicamente 1, ahi sale 0, no sale nada mas que 0. ¿Alguien sabe como resolverlo?
Gracias
CREO QUE LO QUE HICISTE NOS SIRVIO DE GRAN AYUDAD A MUCO HOY AMI ME HA SERVIDO DEMACIOADO, YA QUE TE AHORRAS MUCHO TIEMPO Y EL CAMBIO ES AUTOMATICO LO UNICO QUE SE DEBE HACER ES REVIZAR LA CANTIDAD.
ResponderEliminarMUCHAS GRACIAS ERES UNA PERSONA GENIO.
QUE TAL OJALA ALGUIEN PUEDA RESPONDER A MI PREGUNTA POR FAVOR:
ResponderEliminarNecesito saber como hacer para que cuando la cantidad sea en miles, especificamente mil, en letra me aparezca UN MIL, EJEMPLO:
1,935.36 ( UN MIL NOVECIENTOS TREINTA Y CINCO PESOS 36/100 M.N.)
POR QUE SOLO APARECE MIL
OTRA COSA, AL PONER 1 Ó 1,000,000 NO ME REGRESA NADA EN LETRAS
YO CAMBIE EN EL CODIGO DE LAS LINEAS EN DONDE APARECE "UNO " PARA QUE NO ME PONGA AL FINAL 'UNO' SINO 'UN', PERO NO SE EN Q MAS ME PUEDE AFECTAR???
OYE MARIO!! :roll: YA LEI MAS ARRIBA Y LA VERDAD NO VEO SOLUCION PARA 1 Ó 1,000,000 :cry:
ResponderEliminarYA PUDE RESOLVER LO DE 'UN MIL', PERO SIGO BUSCANDO COMO HACER P Q ME SALGA CON LETRA UN PESO Y UN MILLON DE PESOS
GRACIAS :lol:
muy buen programa me facilito mucho mi trabajo solo que he tenido un error hasta ahorita los numeros cerrados no me agrega el 00/100 M.N. y ya modifique la linea 43 y sigo teniendo el mismo problema que puedo hacer al respecto gracias
ResponderEliminarExcelente aportación, muchísimas gracias me ayudó muchísimo. Espero no tener problemas para ejecutarlo, según con lo que he leido en preguntas y respuestas casi se resuelve todo lo que me tenía preocupada. Muchas gracias!!!!!
ResponderEliminarsolo tengo una pregunta que creo que ha sido la de todos o la de la mayoría, que pasa con 1,000,000.00? Si por favor me ayudan? Gracias de antemano.
ResponderEliminarhola yo tengo una pregunta
ResponderEliminara mi no m funciona el programa no se en que este mal pero no m funciona necesito ayuda urgente :sad:
hola gracias tu macro me ha servido mucho en mi trabajo pero necesito que la cantidad con letra vaya entre parentesis, logre poner el parentesis del final peno no he podido poner el de inicio ojala me pueda ayudar. y como podria poner para que quede un y no uno gracias
ResponderEliminarcomo podré combinar dos bancos de datos de cinco columnas de datos en excel cada una en un archivo de Microsoft Excel
ResponderEliminarBuenos dias, mil gracias por este gran trabajo ejecutado, te comento que pude solocionar mi problema de conversion de numero a letras gracias a tus detalladas explicaciones, soy novata en programacion y me sirvieron de gran ayuda.
ResponderEliminarsaludos.
Hola, acabo de encontrar tu espacio, despues de mucho leer y buscar entendi tu idea, la hice y claro qeu funciona!!! solo encontre un detalle, talvez sea error mio, ya que yo no soy programador ni nada por el estilo, solo busco herramientas que me ayuden en mis quehaceres y talvez pueda ser un error mio.
ResponderEliminarEl punto que vi es que si manejas cantidades sin fracciones no te agerga la frase "PESOS" al final del texto ya convertido. De otra maera, esq ue si por ejemplo pongo 123456.78 el texto sale correcto pero si pongo solo 123456 le falta al final la leyebda PESOS.
saludos y gracias por la informacion.
muy buen programa me facilito mucho mi trabajo solo que he tenido un error hasta ahorita los numeros cerrados no me agrega el 00/100 M.N. que puedo hacer al respecto gracias
ResponderEliminarHola, acabo de encontrar tu espacio, despues de mucho leer y buscar entendi tu idea, la hice y claro qeu funciona!!! solo encontre un detalle, talvez sea error mio, ya que yo no soy programador ni nada por el estilo, solo busco herramientas que me ayuden en mis quehaceres y talvez pueda ser un error mio.
ResponderEliminarEl punto que vi es que si manejas cantidades sin fracciones no te agerga la frase “PESOS” al final del texto ya convertido. De otra maera, esq ue si por ejemplo pongo 123456.78 el texto sale correcto pero si pongo solo 123456 le falta al final la leyebda PESOS.
Hola a todos, quisera ver sia lguien em puede ayudar ya que no tengo experiencia en visual, hago todos los pasos pero al escribir =letras(a1) para ver si funciona me remite al visual nuevamente y me marca el siguente error:
ResponderEliminarError de compilacion:
Se esperaba: Numero de linea o etiqueta o declaracion o fin de la instruccion.
Alguien podra ayudarme?
convertirle en letras 1005706887
ResponderEliminarExcelente ayuda para NO programadores. Mil gracias.
ResponderEliminarPara todo aquello que tuvieron el mismo problema que yo con el numero 1 que decía uno pesos, 1,000 mil pesos y 1, 000,000.00 uno millos. Le agrego donde pueden hacer los cambio para que lo corrijan y se escriba correctamente un peso 00/100 un mil pesos 00/100 un millón pesos 00/100.
ResponderEliminarLinea 32 If Trim(CadMiles) = "UN" Then Poner "UNO"
Linea 44 If Trim(CadMillones & CadMiles & CadCientos & caddecimales) = "UN" Then Poner "UNO"
Linea 045.Cadena = Cadena & "UNO " Poner "UN"
La linea 55 y 56 hacer el mismo procedimiento que 44 y 45
Linea 174 txtUnidad = "UNO" Poner "UN"
Linea 274 txtUnidaddecimal = "UNO" Poner "UN"
Mi campeon, es un gran trabajo lo que has hecho. Sin lugar a dudas esta excelente, ya lo aplique, y le hice las modificaciones que hace alfalfa y realmente si surte buenos resultados.
ResponderEliminarGRACIAS
HOLA MARIO, SOY NUEVA EN ESTO, PERO METI TU FORMULA Y ME SALE: Se esperaba: Numero de linea o etiqueta o declaracion o fin de la instruccion.
ResponderEliminarEN QUE ME EQUIVOQUE, POR FAVOR AYUDAME
GEMELOS2 excelente trabajaso amigo... mil gracias. Y a ti mario por subir la macro
ResponderEliminarHola Mario, me podrias enviar tu macros que convierte números a letras en Excel,
ResponderEliminarhace tiempo usaba lotus 123, ahoa que necesito hacer una factura en Excel y se me complica por la presion del tiempo en mi trabajo, sino seria mucha molestia con sus cambios corregidos, Gracias
Hola, soy principiante, seguí las instrucciones, pero tengo el siguiente mensaje y no puedo continuar "Error de compilación" "Se esperaba: número de línea, o etiqueta o declaración o fin de instrucción". Gracias por tu ayuda.
ResponderEliminarYa solucione mi problema, muchas gracias, haces un bien a la humanidad con esta función :grin: :razz: :razz:
ResponderEliminarbesos!
Hola.
ResponderEliminarAlguien me puede ayudar se los agradeceria mucho, ya realice todo el procedimiento todo esta muy bien pero cuando es una cantidad cerrada por ejemplo 20.00 solo aparece veinte, yo quisiera que apareciera veinte pesoso 00/100 MN.
Cuando hay centavos la cantidad con letra aparece completa ejemplo 20.05 veinte pesos 05/100 MN.
Solo ocurre cuando no hay centavos.
Gracias por su ayuda.
gracias por la macro despues de las modificaciones sirbe a la perfecion
ResponderEliminarmuy buena la formular pero me pasa lo siguiente la cifra es 124.334 y en letras me pone ciento veinticuatro mil trescientos treinta y tres, sorry me equivoque en el posteo de arriba la probe con otros archivos y en todo que quita 1 peso jajaja quien me puede ayudar????????
ResponderEliminarmuy buena la formular pero me pasa lo siguiente la cifra es 124.334 y en letras me pone ciento veinticuatro mil trescientos treinta y cuatro, la probe con otros archivos y en todo que quita 1 peso jajaja quien me puede ayudar????????
ResponderEliminarMuy pero muy bueno.. gracias ... me has ahorrado 100 hrs. de transcripcion. felicidades
ResponderEliminarEstimado, de corazon le agradezco por la colaboracion, buscando por internet encontre esta web, maravilloso el ejemplo, desde Chile un abrazo y un eterno agradecimiento
ResponderEliminarhola.. tambien queria darte las gracias... ya que para mi tambien me ahorraste 1000 de hrs de trabajo extra, por que trabajo mucho con cifras¿¿¿, pero solo queria hacer una pregunta..
ResponderEliminarComo puedo hacerle para que el resultado de la traduccion de numeros a letras aparezca entre parentesis, asi como cuando sean cantidades sin centavos tambien aparezcan las palabras PESOS 00/100 M.N.
POR EJEMPLO : CUANDO PONES 1,000.00 SOLO APARECE "MIL" COMO PUEDO HACER PARA QUE TRADUZCA "UN MIL PESOS 00/100 M.N."
ASI COMO POR EJEMPLO TIENES 2,500.00 QUE TRADUZCA PARA QUEDAR DE LA SIGUIENTE MANERA (DOS MIL QUINIENTOS PESOS 00/100 M.N.) YA QUE AL REALIZAR LA TRADUCCION SOLO PONE "DOS MIL QUINIENTOS"
MUHCAS GRACIAS DE ANTEMANO..
Esta super tu aporte, tiene un problemita para 1,000,000 (un millon) pero es superable.
ResponderEliminartengo un problema con el millon y trabajo con miles de millones pliss ayudemee necesito eso urgente
ResponderEliminarya realicé todo el procedimiento que se menciona, pero cuando quiero probarlo me sala #¿NOMBRE?, que podrá ser
ResponderEliminarya realicé todo el procedimiento que se menciona, pero cuando quiero probarlo me sale #¿NOMBRE?, que podrá ser
ResponderEliminarHola mario gracias por tu aporte se que funciona bien pero ami no me ha funcionado, mira copie los codigo en el visual basic en un modulo nuevo cuando lo grabo me dice ke lo debo grabar con marco ok asi lo hago pero al momento de poner la formula me dice ke error de Copilacion y me dice ke Los comentarios solamente pueden aparecer despues de end,end sub, end function o end property y al darle aceptar me abre automaticamente el visual basic y me posiciona en la siguiente linea
ResponderEliminarFunction ConvierteCifra(Texto, IsCientos As Boolean)
Ubicacion es Lin 70, Col 4
me la resalta en amarillo, alo mejor esta algo mal, pero ya revise una por una las lineas de esta pagina y no le encuentro el error si puedieran ayudarme se los agradeceria
atte xhaparro_dguez
: :cry: muchas grasias no pude encontrar lo q pude bye
ResponderEliminarMuy bueno, pero cuando llamo a esa funcion me sale la leyenda ¡NOMBRE?
ResponderEliminary no he podido darle solución, te agradecería me ayudes. Gracias
Oscar
Me sale el siguiente error, por favor ayudeme. gracias
ResponderEliminarError de compilacion
Se esperaba: # de linea o etiqueta o declaracion o fin de la instruccion.
gracias es de gran apoyo la aportacion de la funcion que estan dadando ya que fumciona muy bien
ResponderEliminarExcelente función, pero al escribir 1,000,000.00, me sale cero. Por favor, me puede decir que hacer. Gracias.
ResponderEliminarHOLA:
ResponderEliminarMUY BUENA FUNCION. PERO AL PONER 1 o 1,000,000, NO ME SALE NADA.
COMO LO ARREGLO. GRACIAS. :roll:
NO ME SALE!!!! NO SE XQ.... SERIA MAS FACIL SI ALGUIEN PUEDE MANDARME UN FORMATO YA HECHO!!! JEJEJE SALUDS
ResponderEliminarhey maestro la formula es un exito ya la estoy usando y a funcionado bien pero yo quisiera saber si le podar agregar la palabra con te explico
ResponderEliminarlas letras salen asi
un mil doscientos veinticinco 56/100
y yo necesito asi
un mil doscientos veinticinco con 56/100
gracias y talvez puedes ayudarme
:?: Mil gracias por la fórmula, es excelente. Pero tengo el problema que al poner 1.00 o 1,000,000.00 no hace nada la función. Me podrias ayudar. Gracias.
ResponderEliminarHola muy buenos tus aportes para que los que somos usuarios de Excel pero que no contamos con una buena base en sistemas podamos mejorar nuestro desempeño.
ResponderEliminarTengo un problema que tal vez me puedas solucionar:
nececito una funcion que redondee en el numero que yo fije. Para que cuando un numero cualquiera tenga decimales mayores a 25 la funcion me de el numero mayor.
Por esiguiente y si es menor el numero entero menor.
Por ejemplo que 1.20 de como resultado 1 y que 25,30 de como resultado 26.
Muchas gracias, espero tu ayuda. saludos
Hola:
ResponderEliminarSoy juan del d.f. seguí el paso a paso pero cuando ingreso el número en una celda y en otra le doy la funcion =letra(i6) por ejemplo me dice que hay un error en la etiqueta y se espera una instrucción final tengo el office 2003 que necesito hacer para que funcione
Necesito saber como puedo realizar en excel que en una determinada colunma establecida pueda poner el famoso texto predictivo, osea al colocar las letras vaya filtrando las palabras asociadas a esas letras, de una determinada lista de nombres.
ResponderEliminarDesde ya agradezco su colaboracion. Atte
hola disculpen una forma facil de poder convertir numeros a letras en exel es que no puedo o que me puedan mandar un ejemplo?
ResponderEliminarbales verga we
ResponderEliminaruna pregunta mi amigo...la mia pienso es mas sencilla...cmo se puede poner las cantidades en numero pero en " ()" parentesis.
ResponderEliminarQue macro tan util , realmente me ayudo mucho , muchas Gracias!!!
ResponderEliminarmuyyyy bueno gracias
ResponderEliminarcomo hago para miles de millones ejemplo (12.459.000.000)
ResponderEliminarMuy buen trabajo muy util.saludos!
ResponderEliminartengo wndows xp
ResponderEliminardigite todo el programa pero me marca errores, no sus programador por ,lo tanto no entiendo que esta mal. si me puedes ayudar muchas gracias
ResponderEliminarQuisiera transforma las notas a texto:
ResponderEliminarEjemplo
nota texto
6,5 seis, cinco
3,0 tres , cero
4,1 cuatro, uno etc
Sólo debo usar desde la nota uno a la nota siete.
Agradecería muchísimo vuestra colaboración. Un agradecido Profesor
AMIGO, MUY BUEN APORTE, NECESITO QUE LAS LA FORMULA ME BOTE EXACTAMENTE ASI..... GRACIAS
ResponderEliminarlas letras salen asi
un mil doscientos veinticinco 56/100
y yo necesito asi
un mil doscientos veinticinco con 56/100
gracias y talvez puedes ayudarme
amigo que salga asi porfas, si puedes me envias un mail
ResponderEliminarlas letras salen asi
un mil doscientos veinticinco 56/100
y yo necesito asi
un mil doscientos veinticinco con 56/100
gracias y talvez puedes ayudarme
Muchas Gracias, me ahorraste horas de teclear
ResponderEliminarmuy bueno el aporte pero no lo puedo ejecutar ya que me sale lo siguiente cuendo le aplico la formula o funcion que dices ERROR DE COMPILACION SE ESPERABA NUMERO DE LINEA O ETIQUETA O DECLARACION O FIN DE LA INSTRUCCION te voy a agradecer mucho el que me ayudes a corregirlo para poderlo usar, de antemano te lo agradezco infinitamente :neutral:
ResponderEliminarhola que tambien me aparece Error de compilacion se esperaba numero de la linea ......por favor me podrias ayudar demas que luego que pego el scrip como guardo o ejecuto el macro , por favor ayuda
ResponderEliminarHOLA LA FORMULA ESTA EXCELENTE PERO SOLO APLICA EN CANTIDADES CON DECIMALES?, EJEMPLO: SI LA CANTIDAD ES $ 215.12 PONE: DOSCIENTOS QUINCE PESOS 12/100 M.N. PERO SI LA CANTIDAD ES: $ 215.00 SOLO PONE: DOSCIENTOS QUINCE, COMO HAGO PARA QUE AUN SIN DECIMALES PONGA LA TERMINACION: PESOS 00/100 M.N.?
ResponderEliminarSALUDOS Y GRACIAS
LAURA HERRERA
LA FORMULA ES MUY BUENA PERO UNA OBSERVACION CUANDO LA CANTIDAD ES CON DECIMALES APARECE TODO COMPLETO Y CON EL NOMBRE DE LA MONEDA, PERO CUANDO LA CANTIDAD SALE SIN DECIMAL NO APARECE COMO POR EJEMPLO: 00/100 NUEVO SOLES QUE ES LO QUE SE TIENE QUE PONER DE TODAS MANERAS EN LA FACTURA ESPERO ME AYUDEN CON ESTA OBSERVACION, MUCHAS GRACIAS...
ResponderEliminarMuchas felicidades esta padrisima, me sirvio y muchooooo :razz:
ResponderEliminar