Código de Visual Basic - Conversión de montos en letras

sin imagen de perfil

Conversión de montos en letrasgráfica de visualizaciones


Visual Basic

Publicado el 5 de Septiembre del 2002 por Roberto (2 códigos)
21.720 visualizaciones desde el 5 de Septiembre del 2002
Esta es una función que convierte montos en letras, esta hecha en Visual Basic para aplicaciones y puede ser usada en las macros de Excel, Word, Outlook, etc. Funciona bien para cantidades entre 1.00 y 999,999,999.99, incluye los centavos y las leyendas características de los montos en México.

Versión 1
estrellaestrellaestrellaestrellaestrella(14)

Publicado el 5 de Septiembre del 2002gráfica de visualizaciones de la versión: Versión 1
21.721 visualizaciones desde el 5 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
Function CantidadEnLetra(tyCantidad As Currency) As String
    Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero
    tyCantidad = Round(tyCantidad, 2)
    lyCantidad = Int(tyCantidad)
    lyCentavos = (tyCantidad - lyCantidad) * 100
    laUnidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIESISEIS", "DIESISIETE", "DIESIOCHO", "DIESINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
    laDecenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
    laCentenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
    lnNumeroBloques = 1
    Do
        lnPrimerDigito = 0
        lnSegundoDigito = 0
        lnTercerDigito = 0
        lcBloque = ""
        lnBloqueCero = 0
        For i = 1 To 3
            lnDigito = lyCantidad Mod 10
            If lnDigito <> 0 Then
                Select Case i
                Case 1
                    lcBloque = " " & laUnidades(lnDigito - 1)
                    lnPrimerDigito = lnDigito
                Case 2
                    If lnDigito <= 2 Then
                        lcBloque = " " & laUnidades((lnDigito * 10) + lnPrimerDigito - 1)
                    Else
                        lcBloque = " " & laDecenas(lnDigito - 1) & IIf(lnPrimerDigito <> 0, " Y", Null) & lcBloque
                    End If
                    lnSegundoDigito = lnDigito
                Case 3
                    lcBloque = " " & IIf(lnDigito = 1 And lnPrimerDigito = 0 And lnSegundoDigito = 0, "CIEN", laCentenas(lnDigito - 1)) & lcBloque
                    lnTercerDigito = lnDigito
                End Select
            Else
                lnBloqueCero = lnBloqueCero + 1
            End If
            lyCantidad = Int(lyCantidad / 10)
            If lyCantidad = 0 Then
                Exit For
            End If
        Next i
        Select Case lnNumeroBloques
        Case 1
            CantidadEnLetra = lcBloque
        Case 2
            CantidadEnLetra = lcBloque & IIf(lnBloqueCero = 3, Null, " MIL") & CantidadEnLetra
        Case 3
            CantidadEnLetra = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " MILLON", " MILLONES") & CantidadEnLetra
        End Select
        lnNumeroBloques = lnNumeroBloques + 1
    Loop Until lyCantidad = 0
    CantidadEnLetra = "(" & CantidadEnLetra & IIf(tyCantidad > 1, " PESOS ", " PESO ") & Format(Str(lyCentavos), "00") & "/100 M.N. )"
End Function



Comentarios sobre la versión: Versión 1 (14)

6 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
El codigo esta muy bien, pero no entiendo la forma de como aplicarlo en Visual Basic. Favor de ayudarmen
Responder
20 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
El codigo esta muy bien, pero no entiendo la forma de como aplicarlo en Macros de Excel, y en Visual Basic. Favor de ayudarme
Responder
21 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Bueno todo funciona bien, pero agregando un modulo por separado estoy tratando de adaptar a mi moneda.
Responder
24 de Septiembre del 2002
estrellaestrellaestrellaestrellaestrella
Hola!

Primero que nada quiero agradecer a Roberto por el excelente codigo, y quiero darle las gracias por su excelente respuesta a mi pregunta de como utilizarlo en Visual y no lo creera pero me decia que el sinceramente no sabia como utilizarlo en Visual pero con el ejemplo que me dio para Excel, he sacado la manera de utilizarlo y es la Siguioente y creo que algunas otras personas tampoco sabian:

PARA UTILIZARLO EN VISUAL BASIC:

LETRA.Text = CantidadEnLetra(SUBTOTAL.Text)

LETRA.Text = "CAJA DE TEXTO EN DONDE SE MOSTRARA LA CANTIDAD EN LETRAS"

CantidadEnLetra =" Funcion para convertir a letras los nemeros.

SUBTOTAL.Text="CAJA DE TEXTO, EN DONDE SE TIENE LA CANTIDAD A CONVERTIR.
Responder
5 de Octubre del 2002
estrellaestrellaestrellaestrellaestrella
justo lo que necesitaba exelente. Bien pensado
Responder
8 de Octubre del 2002
estrellaestrellaestrellaestrellaestrella
Excelente programa, a ver si luego lo terminas para los Millones
Responder
10 de Noviembre del 2005
estrellaestrellaestrellaestrellaestrella
Excelente!!!! muy buen código, me ahorraste algo de estres mental, Gracias!!!
Responder
26 de Noviembre del 2005
estrellaestrellaestrellaestrellaestrella
Excelente y muy funcional. Gracias!
Responder
3 de Agosto del 2006
estrellaestrellaestrellaestrellaestrella
por favor lo pueden subir el programa en visual basic ya que e estado tratando de arreglarlo y no muestra nada saludos
Responder
13 de Septiembre del 2007
estrellaestrellaestrellaestrellaestrella
este codigo esta super genial se ve que le echaste muchas ganas y esta perfectamente bien echo, eres grande! jajaja gracias!
Responder
15 de Febrero del 2008
estrellaestrellaestrellaestrellaestrella
Excelente, solo hay que cambiar algunas cantidades en letras, como diecinueve, diecisiete, pero fuera de ello, muy bueno el código.
Responder
24 de Junio del 2010
estrellaestrellaestrellaestrellaestrella
Para visual basic 2008 no funciona
Responder
16 de Abril del 2011
estrellaestrellaestrellaestrellaestrella
Excelente código facil de implementar y ahorra una gran quebrada de coco felicitaciones claro solo hacer unos cuantos cambiecillos leves y listo, (pero que mas quiere el sapo no, pelon y con diadema) saludos y mil gracias...
Responder
Ildefonso Ifill Pino
30 de Abril del 2023
estrellaestrellaestrellaestrellaestrella
Me gustó muchísimo.

Hacen más de 15 años hice uno demasiado largo, que primero preguntaba las unidades que deseaba escribir (tipo de moneda, medidas lineales o de superficie, gramos, litros, grados centígrados o farenheit, etc), luego debía escribir en guarismos, el número que deseaba escribir en letras, con el objeto de que el resultase, además de escribir los guarismos en letras, también escribiese de qué se trataba. Incluso le añadí un género, porque las toneladas son, P Ej. quinientAs, mientras que los pesos son quinientOs.

El macro era llamada por otro macro porque algo de mi trabajo es la redacción de documentos y la idea es que cuando se esté elaborando uno, invoque el programa, coloque la cifra y continúe lo que reste del documento.

Nunca estudié nada de computación, de manera que lo hice empíricamente.
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s309