Buscar : en
Por :

Pasar una cifra en numeros a una en letras

vmcuki, el 26 ene 2009, 13:00:15
 Señalar este mensaje a los moderadores

Hola, en un recibo de sueldos quiero pasar el importe total a pagar de numeros a letras, ej.$ 230.54 PESOS: DOSCIENTOS TREINTA CON 54/100.
Espero vs. respuesta , muchas gracias vmcuki.

Configuración: Windows XP
Internet Explorer 7.0

Mejores respuestas para « pasar una cifra en numeros a una en letras » en :
[Word] Convertir un número en letras VerEn Word es posible convertir un número en letras conservando la ortografía (por ejemplo el acento,…), para ello: Crea un campo con CTRL-F9 En la pantalla aparecerá {} Pon dentro del campo el número precedido del signo “=” y luego del número...
PHP – Código antispam con números y letras (CAPTCHA) VerEn numerosos sitios Web, entre ellos Kioskea, habrás podido observar que los formularios vienen acompañados de un código CAPTCHA, el que tiene que ser ingresado en una casilla. Este sistema evita el envío abusivo de spam de manera automatizada por...
Tecla Fn bloqueada Ver¿Tu PC portátil escribe números en lugar de letras cuando utilizas el teclado y debes presionar la tecla Fonction (Fn) para escribir correctamente? Seguramente que has activado por error el bloqueo numérico. Para solucionar el problema, presiona la...
Cifrado de sustitución VerCifrado de sustitución El cifrado de sustitución consiste en reemplazar una o más entidades (generalmente letras) de un mensaje por una o más entidades diferentes. Existen varios tipos de criptosistemas de sustitución: La sustitución monoalfabética...

1

victor, el 26 ene 2009, 16:01:45

2

Yongtai, el 26 ene 2009, 16:04:29
  • +5

Se me ocurre como hacerlo en un lenguaje de programación, pero no en algo tan básico como el excel...

3

migue, el 12 feb 2009, 18:33:41
  • +2

Hola,
me ha llamado la atencion tu pregunta. yo tengo un negociete y me hice una hoja de calculo en excel para que me imprimiera mis propios recibos, y que fuera capaz de escribir el importe en letras. Funciona muy bien (llevo 4 años usandolo), pero es un proceso bastante costoso. Si estas interesado, dimelo y me armare de valor para decirte como lo hice, jeje.
hasta luego

15

1234, el 16 jul 2009, 00:25:21

Migue a mi si me interesa me podrias sacar de la duda

18

JAMZ, el 20 ago 2009, 00:52:23
  • +1

QUE BUENO COMPAÑERO QUE TENGA ESA VALIOSA INFORMACION, PERO SE ME HACE QUE USTED ES UN MEDIOCRE, ESTE ES UN FORO PARA AYUDAR Y USTED NO LO HACE VALLA Y VENDALE SU IDEA A MICROSOFT AHI SI LE PAGARAN SU COSTOSO PROGRAMITA

YO LO TENGO NO EN EXCEL SI NO EN UN EJECUTABLE, EL CUAL YO MISMO LO PROGRAME Y ESTOY DISPUESTO A PASARLO A QUIEN ME LO PIDA, SOY LIC. EN INFORMATICA Y ME DEDICO HA PROGRAMAR SOFTWARE EL CUAL SI LO COBRO Y POR ESO NO TEMO A PASAR PEQUEÑOS PROGRAMITAS PARA AYUDAR A LA GENTE

CUIDESE Y OJALA Y SU CONOCIMIENTO LE SIRVA DE MUCHO

4

tepitenio, el 17 feb 2009, 17:46:51

5

Martin_Alexandroff, el 5 may 2009, 00:04:51
  • +13

Convertir Numeros a Letras en Exel (Argentina)
abris un exel, vas a herramientas, macro, macros. Donde dice nombre de la macro, pones n1 y despues hacé click en crear.
Te va a abrir un Visual Basic. Justo donde está el cursor, pegá lo siguiente:

Public Function NL(ByVal Numero As Double) As String
Dim NumTmp As String
Dim c01 As Integer
Dim c02 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim Leyenda1 As String
Dim TFNumero As String
If Numero < 0 Then Numero = Abs(Numero)
NumTmp = Format(Numero, "000000000000000.00")
c01 = 1
pos = 1
TFNumero = ""
Do While c01 <= 5
c02 = 1
Do While c02 <= 3
dig = Val(Mid(NumTmp, pos, 1))
Select Case c02
Case 1: cen = dig
Case 2: dec = dig
Case 3: uni = dig
End Select
c02 = c02 + 1
pos = pos + 1
Loop
letra3 = Centena(uni, dec, cen)
letra2 = Decena(uni, dec)
letra1 = Unidad(uni, dec)
Select Case c01
Case 1
If cen + dec + uni = 1 Then
Leyenda = "Billon "
ElseIf cen + dec + uni > 1 Then
Leyenda = "Billones "
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid _
(NumTmp, 7, 3)) = 0 Then
Leyenda = "Mil Millones "
ElseIf cen + dec + uni >= 1 Then
Leyenda = "Mil "
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = "Millon "
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = "Millones "
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = "Mil "
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = ""
End If
End Select
c01 = c01 + 1
TFNumero = TFNumero + letra3 + letra2 + _
letra1 + Leyenda
Leyenda = ""
letra1 = ""
letra2 = ""
letra3 = ""
Loop
If Val(NumTmp) = 0 Or Val(NumTmp) < 1 Then
Leyenda1 = "Cero Pesos"
ElseIf Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
Leyenda1 = "Pesos "
ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid _
(NumTmp, 10, 6)) = 0 Then
Leyenda1 = "de Pesos "
Else
Leyenda1 = "Pesos "
End If
TFNumero = "Son Pesos " & TFNumero & "con " & Mid _
(NumTmp, 17) & "/100"
TFNumero = UCase(TFNumero)
NL = TFNumero
End Function
Private Function Centena(ByVal uni As Integer, _
ByVal dec As Integer, ByVal cen As Integer) As String
Select Case cen
Case 1
If dec + uni = 0 Then
cTexto = "cien "
Else
cTexto = "ciento "
End If
Case 2: cTexto = "doscientos "
Case 3: cTexto = "trescientos "
Case 4: cTexto = "cuatrocientos "
Case 5: cTexto = "quinientos "
Case 6: cTexto = "seiscientos "
Case 7: cTexto = "setecientos "
Case 8: cTexto = "ochocientos "
Case 9: cTexto = "novecientos "
Case Else: cTexto = ""
End Select
Centena = cTexto
cTexto = ""
End Function
Private Function Decena(ByVal uni As Integer, _
ByVal dec As Integer) As String
Select Case dec
Case 1
Select Case uni
Case 0: cTexto = "diez "
Case 1: cTexto = "once "
Case 2: cTexto = "doce "
Case 3: cTexto = "trece "
Case 4: cTexto = "catorce "
Case 5: cTexto = "quince "
Case 6 To 9: cTexto = "dieci"
End Select
Case 2
If uni = 0 Then
cTexto = "veinte "
ElseIf uni > 0 Then
cTexto = "veinti"
End If
Case 3: cTexto = "treinta "
Case 4: cTexto = "cuarenta "
Case 5: cTexto = "cincuenta "
Case 6: cTexto = "sesenta "
Case 7: cTexto = "setenta "
Case 8: cTexto = "ochenta "
Case 9: cTexto = "noventa "
Case Else: cTexto = ""
End Select
If uni > 0 And dec > 2 Then cTexto = cTexto + "y "
Decena = cTexto
cTexto = ""
End Function
Private Function Unidad(ByVal uni As Integer, _
ByVal dec As Integer) As String
If dec <> 1 Then
Select Case uni
Case 1: cTexto = "uno "
Case 2: cTexto = "dos "
Case 3: cTexto = "tres "
Case 4: cTexto = "cuatro "
Case 5: cTexto = "cinco "
End Select
End If
Select Case uni
Case 6: cTexto = "seis "
Case 7: cTexto = "siete "
Case 8: cTexto = "ocho "
Case 9: cTexto = "nueve "
End Select
Unidad = cTexto
cTexto = ""

Una vez pegado, guardá el archivo (Archivo, Guardar) y cerrá la ventana del Visual Basic.
Te va a haber quedado abierta la ventana del exel que abriste en un principio, la cual ya contiene la fórmula para que transforme los número en letras.
Para ver como funciona te doy un ejemplo:
En la celda A1, colocá un número (ej:2987,65). Luego en la celda B1 colocá la siguiente fórmula: =nl(a1). En la celda B1 te aparecerá lo ésto: SON PESOS DOS MIL NOVECIENTOS OCHENTA Y SIETE CON 65/100.
La verdad que nunca respondo en los foros, pero con ésto, estube como un mes en google y no encontraba nada. Espero que les sirva

6

vmcuki, el 8 may 2009, 20:43:34

Muchisimas gracias!!!! gracias por que lo logre!!! No es complicado pero hay que saber, Chapeaux Caballero!!!
My didactica tu explicacion! Un abrazo vmcuki.

8

TATUAPU, el 20 may 2009, 22:44:02
  • +1

Hola martin gracias por la ayuda k encontre en el foro me sirve de mucho pero tengo un detalle de komo poner la formula y k no aparesca son pesos... y k aparesca solamente, por ejemplo CINCO MIL CUATROCIENTOS VEINTISEIS PESOS CON 20/100 si mepodrias ayudar te lo agradeceria...

bueno espero tu respuesta
mi correo es robert03263@hotmail.com si me podrias enviar la respuesta a mi email... x fa
y muchas gracias..

bye

11

piec, el 3 jun 2009, 07:05:52

Hola, me sirvio de mucho tu respuesta, esta formula la ocupo para facturacion, ya le hice algunos cambios.
Gracias

16

Angelita, el 29 jul 2009, 18:39:44

Muchas gracias!!!, llevaba mucho tiempo pensando que no podia pasar los números a letras porque no se hacer macros, pero con tu ayuda fue muy fácil!!!!

Nuevamente GRACIAS!!!

19

 regros, el 22 ago 2009, 00:06:49

Estoy tratando de armar un texto en mis facturas y consegui este que me parece el más idoneo para tal efecto sólo que al parecer está incompleto o lago le falta por que me marca error justo al final de la macro espero que me puedas ayudar
ejemplo: numero 1,861,347.86
Texto: SON: (UN MILLÓN OCHOCIENTOS SESENTA Y UN MIL TRESCIENTOS CUARENTA Y SIETE PESOS CON 86/100 M.N.)
Muchas gracias de antemano
saludos

7

TATUAPU, el 20 may 2009, 22:31:07
  • +1

Buenas tardes Martin_Alexandroff espero y encuentres esta nota la verdad me sirvio mucho tu comentario pero keria saber si me podrias ayudar para poder kitar lo de SON PESOS y k pesos apareciera despues de poner la cantidad en letra por ejemplo CINCO MIL CUATROCIENTOS VEINTISEIS PESOS 20/100 si me podrias ayudar te lo agradeceria mucho compañero...
bueno....
me despido y esperare tu respuesta...
mi email es robert03263@hotmail.com si me lo podrias enviar gracias....

14

Oaxhero, el 2 jul 2009, 19:20:38
  • +4

De antemano Gracias a Martín por el aporte.
Respondiendo a la necesida de Tatuapu, le hice unas modificaciones al código, para que me dé el resultado que necesito. ej: $1,302.34 al cambiar a texto arroja lo sig: UN MIL TRESCIENTOS DOS PESOS 34/100 M.N., que es el formato que utilizamos en México. Cabe mencionar que también ajusté la leyenda UNO por UN, ya que me daba lo siguiente: UNO MIL TRESCIENTOS DOS PESOS 34/100 M.N. que no es lo adecuado. bueno acá les dejo el código que utilizo.


Public Function NL(ByVal Numero As Double) As String
Dim NumTmp As String
Dim c01 As Integer
Dim c02 As Integer
Dim pos As Integer
Dim dig As Integer
Dim cen As Integer
Dim dec As Integer
Dim uni As Integer
Dim letra1 As String
Dim letra2 As String
Dim letra3 As String
Dim Leyenda As String
Dim Leyenda1 As String
Dim TFNumero As String
If Numero < 0 Then Numero = Abs(Numero)
NumTmp = Format(Numero, "000000000000000.00")
c01 = 1
pos = 1
TFNumero = ""
Do While c01 <= 5
c02 = 1
Do While c02 <= 3
dig = Val(Mid(NumTmp, pos, 1))
Select Case c02
Case 1: cen = dig
Case 2: dec = dig
Case 3: uni = dig
End Select
c02 = c02 + 1
pos = pos + 1
Loop
letra3 = Centena(uni, dec, cen)
letra2 = Decena(uni, dec)
letra1 = Unidad(uni, dec)
Select Case c01
Case 1
If cen + dec + uni = 1 Then
Leyenda = "Billon "
ElseIf cen + dec + uni > 1 Then
Leyenda = "Billones "
End If
Case 2
If cen + dec + uni >= 1 And Val(Mid _
(NumTmp, 7, 3)) = 0 Then
Leyenda = "Mil Millones "
ElseIf cen + dec + uni >= 1 Then
Leyenda = "Mil "
End If
Case 3
If cen + dec = 0 And uni = 1 Then
Leyenda = "Millon "
ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
Leyenda = "Millones "
End If
Case 4
If cen + dec + uni >= 1 Then
Leyenda = "Mil "
End If
Case 5
If cen + dec + uni >= 1 Then
Leyenda = ""
End If
End Select
c01 = c01 + 1
TFNumero = TFNumero + letra3 + letra2 + _
letra1 + Leyenda
Leyenda = ""
letra1 = ""
letra2 = ""
letra3 = ""
Loop
If Val(NumTmp) = 0 Or Val(NumTmp) < 1 Then
Leyenda1 = "Cero Pesos"
ElseIf Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
Leyenda1 = "Pesos "
ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid _
(NumTmp, 10, 6)) = 0 Then
Leyenda1 = "de Pesos "
Else
Leyenda1 = "Pesos "
End If
TFNumero = "" & TFNumero & "pesos " & Mid _
(NumTmp, 17) & "/100 M.N."
TFNumero = UCase(TFNumero)
NL = TFNumero
End Function
Private Function Centena(ByVal uni As Integer, _
ByVal dec As Integer, ByVal cen As Integer) As String
Select Case cen
Case 1
If dec + uni = 0 Then
cTexto = "cien "
Else
cTexto = "ciento "
End If
Case 2: cTexto = "doscientos "
Case 3: cTexto = "trescientos "
Case 4: cTexto = "cuatrocientos "
Case 5: cTexto = "quinientos "
Case 6: cTexto = "seiscientos "
Case 7: cTexto = "setecientos "
Case 8: cTexto = "ochocientos "
Case 9: cTexto = "novecientos "
Case Else: cTexto = ""
End Select
Centena = cTexto
cTexto = ""
End Function
Private Function Decena(ByVal uni As Integer, _
ByVal dec As Integer) As String
Select Case dec
Case 1
Select Case uni
Case 0: cTexto = "diez "
Case 1: cTexto = "once "
Case 2: cTexto = "doce "
Case 3: cTexto = "trece "
Case 4: cTexto = "catorce "
Case 5: cTexto = "quince "
Case 6 To 9: cTexto = "dieci"
End Select
Case 2
If uni = 0 Then
cTexto = "veinte "
ElseIf uni > 0 Then
cTexto = "veinti"
End If
Case 3: cTexto = "treinta "
Case 4: cTexto = "cuarenta "
Case 5: cTexto = "cincuenta "
Case 6: cTexto = "sesenta "
Case 7: cTexto = "setenta "
Case 8: cTexto = "ochenta "
Case 9: cTexto = "noventa "
Case Else: cTexto = ""
End Select
If uni > 0 And dec > 2 Then cTexto = cTexto + "y "
Decena = cTexto
cTexto = ""
End Function
Private Function Unidad(ByVal uni As Integer, _
ByVal dec As Integer) As String
If dec <> 1 Then
Select Case uni
Case 1: cTexto = "un "
Case 2: cTexto = "dos "
Case 3: cTexto = "tres "
Case 4: cTexto = "cuatro "
Case 5: cTexto = "cinco "
End Select
End If
Select Case uni
Case 6: cTexto = "seis "
Case 7: cTexto = "siete "
Case 8: cTexto = "ocho "
Case 9: cTexto = "nueve "
End Select
Unidad = cTexto
cTexto = ""

17

LUCI, el 14 ago 2009, 01:57:56
  • +1

Hola!!

me podrias mandar porfavor un correo ya que no se hacer macros y ya me quebre la cabeza y no puedo, espero tu respuesta.

muchas gracias, saludos.....

9

moma, el 23 may 2009, 00:41:37

Mil gracias por esa super ayuda es algo necesario realmente me sirvio. solo tengo una duda en donde guardo el doc de las funciones para que automaticamente aparezca en un nuevo doc. agradeceria tu inf. gracias..

moma

10

TATUAPU, el 26 may 2009, 00:44:28
  • +1

B t moma pues te respondo a tu pregunta la verdad no se muy bien en donde guardar la formula para k te aparesca la cantidad en letras a komo yo tengo entendido esa formula la vas a poner cada bes k utilices una hoja de excel ando checando si puedo guardarlo en otra opcion para k cada ves k lo abra este en un libro nuevo si llego a dar con tu pregunta te mandare la respuesta completa saleee no mas k dame chance yo te aviso
bueno kuidat....

12

sagi76, el 15 jun 2009, 23:37:33

Hola, a todos, gracias Martin por tu gran aportacion, me ha ayudado mucho, saludos Cordiales desde el Salvador
pd : para cambiar a otra moneda solo busca la linea en donde aparecen "son pesos" y solo les ponen la moneda de su pais y ya esta lista. aca esta ya corregido deacuerdo a mi pais como lo utilizo, nuevamente Martin Gracias.

c01 = c01 + 1
TFNumero = TFNumero + letra3 + letra2 + _
letra1 + Leyenda
Leyenda = ""
letra1 = ""
letra2 = ""
letra3 = ""
Loop
If Val(NumTmp) = 0 Or Val(NumTmp) < 1 Then
Leyenda1 = "Cero Pesos"
ElseIf Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
Leyenda1 = "Dolares "
ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid _
(NumTmp, 10, 6)) = 0 Then
Leyenda1 = "Dolares"
Else
Leyenda1 = "Dolares "
End If
TFNumero = TFNumero & Mid _
(NumTmp, 17) & "/100" & " Dolares "
TFNumero = UCase(TFNumero)
NL = TFNumero

13

coco, el 17 jun 2009, 03:05:32
  • +3

Gracias
Con tu ayuda me ahorraste muchas horas de trabajo.
Saludos desde Chihuahua Chihuahua, Mexico.