Convertir cantidad en letras
ouzzin
Mensajes publicados
268
Fecha de registro
Estado
Miembro
Última intervención
-
toxicjesus -
toxicjesus -
Hola,
he creado un estado de recibo del cliente, tengo la cantidad en cifras, lo que quisiera ahora es tener también esa misma cantidad en letras como en los recibos.
también quisiera saber cómo hacer para que la hoja de impresión sea de tamaño pequeño.
Estoy utilizando Access 2003
gracias
he creado un estado de recibo del cliente, tengo la cantidad en cifras, lo que quisiera ahora es tener también esa misma cantidad en letras como en los recibos.
también quisiera saber cómo hacer para que la hoja de impresión sea de tamaño pequeño.
Estoy utilizando Access 2003
gracias
Configuración: Windows XP Internet Explorer 6.0
Enlaces relacionados:
- convertir un chiffre en lettre avec Excel -> convertir un número en letra con Excel
- EXCEL transformar números en letras - factura
- C3av5er 5nverso: ¿Teclado invertido con números y letras?
- Fórmula de Excel para mostrar los meses (números) en letras
- software traductor francés/árabe fonético
- NbLettre.xla (conversión de número a letra)
12 respuestas
-
Hola,
Hace algunos años, por mi trabajo, recuperé una función personalizada cuyo nombre del autor no recuerdo, le pido disculpas.
Copia este código en un módulo de macro e Inserción/Función selecciona personalizada, haz clic en el nombre del código chiffrelettre, y haz referencia a la celda en la que vas a ingresar tu número
Function chiffrelettre(s)
Dim a As Variant, gros As Variant
a = Array("", "Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", _
"Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", _
"Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidós", "Veintitrés", "Veinticuatro", _
"Veinticinco", "Veintiséis", "Veintisiete", "Veintiocho", "Veintinueve", "Treinta", "Treinta y Uno", _
"Treinta y Dos", "Treinta y Tres", "Treinta y Cuatro", "Treinta y Cinco", "Treinta y Seis", "Treinta y Siete", _
"Treinta y Ocho", "Treinta y Nueve", "Cuarenta", "Cuarenta y Uno", "Cuarenta y Dos", "Cuarenta y Tres", _
"Cuarenta y Cuatro", "Cuarenta y Cinco", "Cuarenta y Seis", "Cuarenta y Siete", "Cuarenta y Ocho", _
"Cuarenta y Nueve", "Cincuenta", "Cincuenta y Uno", "Cincuenta y Dos", "Cincuenta y Tres", _
"Cincuenta y Cuatro", "Cincuenta y Cinco", "Cincuenta y Seis", "Cincuenta y Siete", "Cincuenta y Ocho", _
"Cincuenta y Nueve", "Sesenta", "Sesenta y Uno", "Sesenta y Dos", "Sesenta y Tres", _
"Sesenta y Cuatro", "Sesenta y Cinco", "Sesenta y Seis", "Sesenta y Siete", "Sesenta y Ocho", _
"Sesenta y Nueve", "Sesenta y Diez", "Sesenta y Once", "Sesenta y Doce", "Sesenta y Trece", _
"Sesenta y Catorce", "Sesenta y Quince", "Sesenta y Dieciséis", "Sesenta y Diecisiete", _
"Sesenta y Dieciocho", "Sesenta y Diecinueve", "Ochenta", "Ochenta y Uno", _
"Ochenta y Dos", "Ochenta y Tres", "Ochenta y Cuatro", "Ochenta y Cinco", _
"Ochenta y Seis", "Ochenta y Siete", "Ochenta y Ocho", "Ochenta y Nueve", _
"Ochenta y Diez", "Ochenta y Once", "Ochenta y Dos", "Ochenta y Tres", _
"Ochenta y Catorce", "Ochenta y Quince", "Ochenta y Dieciséis", "Ochenta y Diecisiete", _
"Ochenta y Dieciocho", "Ochenta y Diecinueve")
gros = Array("", " Billones ", " Miles de millones ", " Millones ", " Mil ", " Euros ", " Billion ", _
" Miles de millones ", " Millón ", " Mil ", " Euro ")
sp = Space(1)
chaine = "00000000000000"
Cent = s * 100 - (Int(s) * 100)
s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s)
If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""
s = chaine + s
'billones a centenas
gp = 1
For k = 1 To 5
x = Mid(s, gp, 1): c = a(Val(x))
x = Mid(s, gp + 1, 2): d = a(Val(x))
If k = 5 Then
If t2 <> "" And c & d = "" Then mydz = " Euros " & sp: GoTo fin
If t <> "" And c = "" And d = "Uno" Then mydz = " Un Euros " & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = " d'Euros " & sp: GoTo fin
If t & c & d = "" Then myct = "": mydz = "": GoTo fin
End If
If c & d = "" Then GoTo fin
If d = "" And c <> "" And c <> "Uno" Then mydz = c & sp & "Céntimos " & gros(k) & sp: GoTo fin
If d = "" And c = "Uno" Then mydz = "Céntimos " & gros(k) & sp: GoTo fin
If d = "Uno" And c = "" Then myct = IIf(k = 4, gros(k) & sp, "Uno " & gros(k + 5) & sp): GoTo fin
If d <> "" And c = "Uno" Then mydz = "Centavo" & sp
If d <> "" And c <> "" And c <> "Uno" Then mydz = c & sp & "Centavo" + sp
myct = d & sp & gros(k) & sp
fin:
t2 = mydz & myct
t = t & mydz & myct
mydz = "": myct = ""
gp = gp + 3
Next
d = a(Cent)
If t <> "" Then myct = IIf(Cent = 1, " Centavo ", " Centavos ")
If t = "" Then myct = IIf(Cent = 1, " Centavo de Euro ", " Centavos de Euro ")
If Cent = 0 Then d = "": myct = ""
chiffrelettre = t & d & myct
End Function
Hasta luego
Mike-31
Un problema sin solución es un problema mal planteado (Einstein)-
Hola,
del cual no recuerdo el nombre del autor para citarlo, que me disculpe.
Creo que es JvDo
--
106485010510997108- Hola Lami20J,
Es posible, pero JVDO según el enlace que proporcionas ya lo había copiado de Exelabo y creo que fue en ese foro donde yo también lo recuperé.
Está ligeramente modificado con el reemplazo en la celda del número por el número escrito en letras ingresado en A, lo cual puede ser una ventaja, mientras que el que propongo, seguramente del mismo autor, conserva el número y llena la celda elegida con el número en letras.
Pero no importa, el código funciona bien y, sea cual sea su autor, hay que agradecerle, lástima que no se pueda citar de manera cierta.
¡Hasta luego!
Mike-31
Un problema sin solución es un problema mal planteado (Einstein)
-
-
-
-
Abre tu archivo, clic derecho en la pestaña de la página, esto abrirá el visual basic Inserción/Módulo en esta página en blanco pega la totalidad del código a continuación
Hola,
acabo de retomar el trabajo, aún no entiendo tu procedimiento. ¿Lo que ustedes llaman archivo es la base de datos o es una consulta o un estado? Yo copié el código en el módulo y lo nombré montantLettre
En la tabla factura, tengo
num-factura
montant_chiffre
montant_lettre
fecha
Regresa a tu hoja de cálculo y selecciona la celda que debe contener el monto en letras Inserción/Función, selecciona Personalizada y clic en chiffrelettre Se abrirá un cuadro de diálogo, clic en la celda en la que ingresarás el valor en cifra
No veo dónde está Inserción/Función y ¿la hoja de cálculo está en el campo "montant_lettre" de la consulta o del estado?
Aclaración: no somos nosotros quienes debemos ingresar en el campo "montant_lettre". Es al ingresar en el campo "montant_chiffre" que el otro campo se llena.
Gracias. -
Hola,
Abre tu archivo, haz clic derecho en la pestaña de la página, esto abrirá el visual basic
Inserción/Módulo en esta página en blanco pega la totalidad del código a continuación
Function chiffrelettre(s)
Dim a As Variant, gros As Variant
a = Array("", "Uno", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", _
"Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciséis", "Diecisiete", _
"Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidós", "Veintitrés", "Veinticuatro", _
"Veinticinco", "Veintiséis", "Veintisiete", "Veintiocho", "Veintinueve", "Treinta", "Treinta y Uno", _
"Treinta y Dos", "Treinta y Tres", "Treinta y Cuatro", "Treinta y Cinco", "Treinta y Seis", "Treinta y Siete", _
"Treinta y Ocho", "Treinta y Nueve", "Cuarenta", "Cuarenta y Uno", "Cuarenta y Dos", "Cuarenta y Tres", _
"Cuarenta y Cuatro", "Cuarenta y Cinco", "Cuarenta y Seis", "Cuarenta y Siete", "Cuarenta y Ocho", _
"Cuarenta y Nueve", "Cincuenta", "Cincuenta y Uno", "Cincuenta y Dos", "Cincuenta y Tres", _
"Cincuenta y Cuatro", "Cincuenta y Cinco", "Cincuenta y Seis", "Cincuenta y Siete", "Cincuenta y Ocho", _
"Cincuenta y Nueve", "Sesenta", "Sesenta y Uno", "Sesenta y Dos", "Sesenta y Tres", _
"Sesenta y Cuatro", "Sesenta y Cinco", "Sesenta y Seis", "Sesenta y Siete", "Sesenta y Ocho", _
"Sesenta y Nueve", "Sesenta y Diez", "Sesenta y Once", "Sesenta y Doce", "Sesenta y Trece", _
"Sesenta y Catorce", "Sesenta y Quince", "Sesenta y Dieciséis", "Sesenta y Diecisiete", _
"Sesenta y Dieciocho", "Sesenta y Diecinueve", "Ochenta", "Ochenta y Uno", _
"Ochenta y Dos", "Ochenta y Tres", "Ochenta y Cuatro", "Ochenta y Cinco", _
"Ochenta y Seis", "Ochenta y Siete", "Ochenta y Ocho", "Ochenta y Nueve", _
"Ochenta y Diez", "Ochenta y Uno", "Ochenta y Dos", "Ochenta y Tres", _
"Ochenta y Cuatro", "Ochenta y Quince", "Ochenta y Dieciséis", "Ochenta y Diecisiete", _
"Ochenta y Dieciocho", "Ochenta y Diecinueve")
gros = Array("", " Billones ", " Mil millones ", " Millones ", " Mil ", " Euros ", " Billion ", _
" Mil millones ", " Millón ", " Mil ", " Euro ")
sp = Space(1)
chaine = "00000000000000"
Cent = s * 100 - (Int(s) * 100)
s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s)
If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""
s = chaine + s
'billions au centaines
gp = 1
For k = 1 To 5
x = Mid(s, gp, 1): c = a(Val(x))
x = Mid(s, gp + 1, 2): d = a(Val(x))
If k = 5 Then
If t2 <> "" And c & d = "" Then mydz = " Euros " & sp: GoTo fin
If t <> "" And c = "" And d = "Uno" Then mydz = " Un Euros " & sp: GoTo fin
If t <> "" And t2 = "" And c & d = "" Then mydz = " de Euros " & sp: GoTo fin
If t & c & d = "" Then myct = "": mydz = "": GoTo fin
End If
If c & d = "" Then GoTo fin
If d = "" And c <> "" And c <> "Uno" Then mydz = c & sp & "Céntimos " & gros(k) & sp: GoTo fin
If d = "" And c = "Uno" Then mydz = "Céntimos " & gros(k) & sp: GoTo fin
If d = "Uno" And c = "" Then myct = IIf(k = 4, gros(k) & sp, "Un " & gros(k + 5) & sp): GoTo fin
If d <> "" And c = "Uno" Then mydz = "Cent" & sp
If d <> "" And c <> "" And c <> "Uno" Then mydz = c & sp & "Cent" + sp
myct = d & sp & gros(k) & sp
fin:
t2 = mydz & myct
t = t & mydz & myct
mydz = "": myct = ""
gp = gp + 3
Next
d = a(Cent)
If t <> "" Then myct = IIf(Cent = 1, " Cent ", " Céntimos ")
If t = "" Then myct = IIf(Cent = 1, " Cent de Euro ", " Céntimos de Euro ")
If Cent = 0 Then d = "": myct = ""
chiffrelettre = t & d & myct
End Function
Vuelve a tu hoja de cálculo y selecciona la celda que debe contener el monto en letras
Inserción/Función, selecciona Personalizada y haz clic en chiffrelettre
Una caja de diálogo se abrirá, haz clic en la celda en la que escribirás el valor en cifras
Si encuentras un problema vuelve al foro, de todos modos mantennos informados
¡Hasta luego!
Mike-31
Un problema sin solución es un problema mal planteado (Einstein) -
Hola,
Pensaba que te habías rendido, recupera un ejemplo y algunas explicaciones con el enlace de abajo, he hecho algunas modificaciones en el código
https://www.cjoint.com/?gsvdVACCVo
¡Hasta luego!
Mike-31
Un problema sin solución es un problema mal planteado (Einstein) -
gracias, voy para allá
¡hasta luego! -
es un archivo de Excel que me has enviado, yo utilizo Access.
-
Exactamente, lo siento, he leído por encima
A+
Mike-31
Un problema sin solución es un problema mal planteado (Einstein) -
Exactamente, lo mismo para mí, leí por encima
HOLA
sigo esperando tu ayuda para mi problema con Access.
Gracias -
Re,
Access no es mi fuerte, mira en estos dos enlaces
http://www.commentcamarche.net/faq/sujet 11100 vb6 vba transformar número en texto
https://access.developpez.com/sources/?page=Conv#ConvNomsPropres
¡Hasta luego!
Mike-31
Un problema sin solución es un problema mal planteado (Einstein) -
-
gracias a todos los miembros de este foro, especialmente a Mike-31 .... ¡también al sitio!!!
mountaga kane de Senegal (tagakane@hotmail.com) -
Lo siento decirte que esta función no funciona. Por ejemplo, si pones 95, dice = Noventa y cinco euros.