Access - Convertir número a letra

 
Vista:

Convertir número a letra

Publicado por Sergio (16 intervenciones) el 18/04/2015 19:06:35
Hola. Existe alguna función que convierta un número a letras, por ej: 1.000 y que figura un mil. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Convertir número a letra

Publicado por Emilio (232 intervenciones) el 20/04/2015 17:59:36
Hola Sergio

Si pones en google de numero a letra vba access, de seguro te salen varias funciones.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Norberto
Val: 1.094
Oro
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Norberto (753 intervenciones) el 21/04/2015 16:10:37
Hola:

Yo en su día encontré ésta:


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
Public Function Num2Text(ByVal value As Double) As String
    Select Case value
        Case 0: Num2Text = "CERO"
        Case 1: Num2Text = "UNO"
        Case 2: Num2Text = "DOS"
        Case 3: Num2Text = "TRES"
        Case 4: Num2Text = "CUATRO"
        Case 5: Num2Text = "CINCO"
        Case 6: Num2Text = "SEIS"
        Case 7: Num2Text = "SIETE"
        Case 8: Num2Text = "OCHO"
        Case 9: Num2Text = "NUEVE"
        Case 10: Num2Text = "DIEZ"
        Case 11: Num2Text = "ONCE"
        Case 12: Num2Text = "DOCE"
        Case 13: Num2Text = "TRECE"
        Case 14: Num2Text = "CATORCE"
        Case 15: Num2Text = "QUINCE"
        Case Is < 20: Num2Text = "DIECI" & Num2Text(value - 10)
        Case 20: Num2Text = "VEINTE"
        Case Is < 30: Num2Text = "VEINTI" & Num2Text(value - 20)
        Case 30: Num2Text = "TREINTA"
        Case 40: Num2Text = "CUARENTA"
        Case 50: Num2Text = "CINCUENTA"
        Case 60: Num2Text = "SESENTA"
        Case 70: Num2Text = "SETENTA"
        Case 80: Num2Text = "OCHENTA"
        Case 90: Num2Text = "NOVENTA"
        Case Is < 100: Num2Text = Num2Text(Int(value \ 10) * 10) & " Y " & Num2Text(value Mod 10)
        Case 100: Num2Text = "CIEN"
        Case Is < 200: Num2Text = "CIENTO " & Num2Text(value - 100)
        Case 200, 300, 400, 600, 800: Num2Text = Num2Text(Int(value \ 100)) & "CIENTOS"
        Case 500: Num2Text = "QUINIENTOS"
        Case 700: Num2Text = "SETECIENTOS"
        Case 900: Num2Text = "NOVECIENTOS"
        Case Is < 1000: Num2Text = Num2Text(Int(value \ 100) * 100) & " " & Num2Text(value Mod 100)
        Case 1000: Num2Text = "MIL"
        Case Is < 2000: Num2Text = "MIL " & Num2Text(value Mod 1000)
        Case Is < 1000000: Num2Text = Num2Text(Int(value \ 1000)) & " MIL"
            If value Mod 1000 Then Num2Text = Num2Text & " " & Num2Text(value Mod 1000)
        Case 1000000: Num2Text = "UN MILLON"
        Case Is < 2000000: Num2Text = "UN MILLON " & Num2Text(value Mod 1000000)
        Case Is < 1000000000000#
            Num2Text = Num2Text(Int(value / 1000000)) & " MILLONES "
            If (value - Int(value / 1000000) * 1000000) Then Num2Text = Trim(Num2Text) & " " & Num2Text(value - Int(value / 1000000) * 1000000)
        Case 1000000000000#: Num2Text = "UN BILLON"
        Case Is < 2000000000000#: Num2Text = "UN BILLON " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
        Case Else
            Num2Text = Num2Text(Int(value / 1000000000000#)) & " BILLONES"
            If (value - Int(value / 1000000000000#) * 1000000000000#) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000000000#) * 1000000000000#)
    End Select
 
End Function

Y a partir de ella hice otra para convertir a ordinales, esos eternos olvidados por los periodistas. Si te interesa me la pides.

Saludos,

Norberto
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Samuel

Convertir número a letra

Publicado por Samuel (7 intervenciones) el 21/04/2015 18:06:35
Hola Sergio, esta es la función que yo utilizo, tienes que pegar el siguiente código en un nuevo módulo
----------------------------------------------------------------
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
54
Function PesosMN(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
Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, i As Variant 'Si esta como Option Explicit
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", "Dieciseís", "Diecisiete", "Dieciocho", "Diecinueve", "Veinte", "Veintiún", "Veintidós", "Veintitrés", "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
PesosMN = lcBloque
Case 2
PesosMN = lcBloque & IIf(lnBloqueCero = 3, Null, " mil") & PesosMN
Case 3
PesosMN = lcBloque & IIf(lnPrimerDigito = 1 And lnSegundoDigito = 0 And lnTercerDigito = 0, " millón", " millones") & PesosMN
End Select
lnNumeroBloques = lnNumeroBloques + 1
Loop Until lyCantidad = 0
PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & Format(Str(lyCentavos), "00") & "/100 M.N."
End Function
----------------------------------------------------------------
puedes editar esta parte para que ponga lo que quieras
PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & Format(Str(lyCentavos), "00") & "/100 M.N."

Y después llamarás la función en campo>propiedades>origen de registro, con el siguiente texto
PesosMN([Nombre del Campo])
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
3
Comentar

Convertir número a letra

Publicado por Sergio (16 intervenciones) el 23/04/2015 00:42:19
La verdad que es complicado. Les agradezco de verdad. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Felix
Val: 6
Ha disminuido su posición en 19 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Felix (74 intervenciones) el 24/04/2015 23:15:18
Si me escribes tu correo te envio la aplicacion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Richard (1 intervención) el 06/09/2019 18:02:55
Es un pequeño control de registo de pago en la cual imprimo los cheque por impresora para no hacerlo a mano y a su vez me que da registrada la operación.
Yo logré convertir de número a letra desde un formulario, donde alimento una tabla, pero me gustaría que me lo guardara el resultado en la misma ( tabla), donde el informe (mecanografía del cheque) no me lo imprime, debido a que no lo guarda en la tabla.
Me gustaría si esto era posible.
Saludos
Richard
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 28
Ha disminuido su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por MARIO (9 intervenciones) el 23/03/2020 23:08:24
Por favor Felix a ver si me envías el código del convertidor de números a letras.

Muchas gracias

Mario
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Anonimo (3315 intervenciones) el 24/03/2020 00:11:35
En este mismo hilo hay DOS versiones de convertir números a letra, a bastantes les ha servido ¿Qué problema hay en esas aportaciones para que las ignores?....

Lo mas sencillo: el clásico copy & paste y leer las indicaciones de uso.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de JUAN MIGUEL
Val: 29
Ha aumentado su posición en 7 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por JUAN MIGUEL (50 intervenciones) el 14/05/2015 05:03:25
hola amigo me funciona excelente gracias. tengo una curiosidad que tengo que hacer para que un numero me salga asi:

un millon docientos treinta y cuatro mil pesos CON setenta y tres centavos.................. Nesecito poner el CON antes de los centavos muchas gracias y si se pudiera ler tambien los centavos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Samuel

Convertir número a letra

Publicado por Samuel (7 intervenciones) el 02/06/2015 20:38:04
Amigo, disculpa por responder hasta ahora, pero había estado ocupado con unas cosas del trabajo

¿Necesitas los centavos con letra también?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JUAN MIGUEL
Val: 29
Ha aumentado su posición en 7 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por JUAN MIGUEL (50 intervenciones) el 02/06/2015 20:48:24
SI AMIGO agradecería su colaboracion
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Samuel

Convertir número a letra

Publicado por Samuel (7 intervenciones) el 02/06/2015 21:44:46
Amigo, para no complicarte tanto solo modifica esta línea:

1
PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & Format(Str(lyCentavos), "00") & "/100 M.N."

por esta:

1
PesosMN = " " & PesosMN & IIf(tyCantidad > 1, " pesos ", " peso ") & "con " & IIf(lyCentavos = 0, " cero ", laDecenas(Left(lyCentavos, 1) - 1) & IIf(lnPrimerDigito <> 0, " y ", Null) & laUnidades(Right(lyCentavos, 1) - 1)) & " Centavos"

Avísame si tienes problemas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 43 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por MAURO (1 intervención) el 27/04/2021 23:57:37
amigo tu codigo me ha funcionado a la perfeccion, hasta cuando la cifra me subio a miles de millones de pesos... como puedo solucionar este impase?
te agradezco mucho.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Ezel
Val: 62
Ha aumentado 1 puesto en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Ezel (24 intervenciones) el 30/04/2021 05:58:14
Hola Samuel.
Me ha sido de gran ayuda la función PesosMN pero tengo la misma necesidad de JUAN MIGUEL, de poner los centavos en letras precedidos por "con".
Al sustituir la fila que refieres me da Error 9, Subíndice fuera de intervalo.
Me podrías ayudar? Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Jose Muñoz

Convertir número a letra

Publicado por Jose Muñoz (2 intervenciones) el 03/10/2015 01:38:30
Buenas disculpen, estoy utilizando este codigo, pero donde deben de salir los valores en letras, me registra el siguiente error: #¿Nombre?
si me podrian colaborar,

De antemano Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de JUAN MIGUEL
Val: 29
Ha aumentado su posición en 7 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por JUAN MIGUEL (50 intervenciones) el 05/10/2015 02:33:36
hola jose hacee dias estuve trabajando con estte codigo y me funciona perfecto le agradezco al amigo de arriba por ayudarme ....... en donde se presenta su error y como lo inserto en access?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Ivan Aguilar (1 intervención) el 16/03/2019 16:45:31
Hola !
Cree un modulo nuevo, le pegue el codigo de arriba, se llama la funcion en el campo de un formulario , pero me aparece #¿Nombre? .... que debo hacer?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santos
Val: 22
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Santos (8 intervenciones) el 25/03/2019 03:37:51
Hola,
Aquí les comparto el código que yo utilizo. No es 100% mio, lo he modificado para mi, pero aquí pongo el casi original que se me proporcionó en un curso de access que hice hace ya mas de unos pocos siglos. Es bastante sencillo y creo que lo podran entender.
Para utilizarlo en un formulario debes colocar la función así:
Campo donde quieres el resultado = ValoresExtenso(Nombre Campo Numeros, "Tipo de moneda", Cantidad de Decimales)
Ejemplo:
MontoLetras = ValoresExtenso(MontoNum, "Pesos", 2)

Espero les sirva:
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
Option Compare Database
Option Explicit
 
Function VECentenas(VEValor As Currency) As String
 
   Dim Cen(1 To 9) As String
   Dim Dec(1 To 10) As String
   Dim Uni(1 To 19) As String
   Dim VEExiste As Boolean
   Dim VEExtenso As String
   Dim VEValor2 As Currency
 
   Cen(1) = "Ciento"
   Cen(2) = "Doscientos"
   Cen(3) = "Trescientos"
   Cen(4) = "Cuatrocientos"
   Cen(5) = "Quinientos"
   Cen(6) = "Seiscientos"
   Cen(7) = "Setecientos"
   Cen(8) = "Ochocientos"
   Cen(9) = "Novecientos"
 
   Dec(1) = "Diez"
   Dec(2) = "Veinte"
   Dec(3) = "Treinta"
   Dec(4) = "Cuarenta"
   Dec(5) = "Cincuenta"
   Dec(6) = "Sesenta"
   Dec(7) = "Setenta"
   Dec(8) = "Ochenta"
   Dec(9) = "Noventa"
 
   Uni(1) = "Uno"
   Uni(2) = "Dos"
   Uni(3) = "Tres"
   Uni(4) = "Cuatro"
   Uni(5) = "Cinco"
   Uni(6) = "Seis"
   Uni(7) = "Siete"
   Uni(8) = "Ocho"
   Uni(9) = "Nueve"
   Uni(10) = "Diez"
   Uni(11) = "Once"
   Uni(12) = "Doce"
   Uni(13) = "Trece"
   Uni(14) = "Catorce"
   Uni(15) = "Quince"
   Uni(16) = "Dieciseis"
   Uni(17) = "Diecisiete"
   Uni(18) = "Dieciocho"
   Uni(19) = "Diecinueve"
 
   VEExiste = False
   VEExtenso = ""
   If VEValor > 100 Then
       VEValor2 = Int(VEValor / 100)
       VEValor = VEValor - VEValor2 * 100
       VEExtenso = Cen(VEValor2)
       VEExiste = True
   End If
   If VEValor = 100 Then
       VEExtenso = "Cien "
       VEExiste = False
   End If
 
   If VEValor > 19 Then
       VEValor2 = Int(VEValor / 10)
       VEValor = VEValor - VEValor2 * 10
       If VEExiste Then VEExtenso = VEExtenso & " "
       VEExtenso = VEExtenso & Dec(VEValor2)
       VEExiste = True
   End If
   If VEValor < 20 And VEValor >= 0 Then
       If VEExiste And VEValor < 0 Then VEExtenso = VEExtenso & ""
       If VEValor > 0 And VEValor Then VEExtenso = VEExtenso & " y " & Uni(VEValor)
   End If
   VECentenas = VEExtenso
 
End Function
 
Public Function ValoresExtenso(Valor As Currency, NomMoneda As String, CantDecimales As Byte) As String
 
   Dim Centavo As Currency
   Dim Millon As Currency
   Dim Mil As Currency
   Dim Unidades As Currency
   Dim Existe As Boolean
   Dim Extenso As String
   Dim CD(0 To 6) As Long
 
   CD(0) = 0
   CD(1) = 10
   CD(2) = 100
   CD(3) = 1000
   CD(4) = 10000
   CD(5) = 100000
   CD(6) = 1000000
 
   If Valor = 0 Then
       ValoresExtenso = "Cero " & NomMoneda
       Exit Function
   End If
 
   Valor = Abs(Valor)
 
   'Centavo = Int((Valor - Fix(Valor)) * 100)
   Centavo = (Valor - Fix(Valor)) * CD(CantDecimales)
 
   Millon = Int(Valor / 1000000)
       Valor = Valor - Millon * 1000000
   Mil = Int((Valor) / 1000)
       Valor = Valor - Mil * 1000
   Unidades = Int(Valor)
       Existe = False
 
   If Millon > 0 Then
       If Millon = 1 Then Extenso = "Un Millón " Else Extenso = VECentenas(Millon) + " Millones "
       Existe = True
   End If
 
   If Mil > 0 Then
       If Existe And Unidades = 0 Then Extenso = Extenso & " "
       If Mil = 1 Then
           Extenso = Extenso & "Un Mil "
       ElseIf Mil > 1 Then
           Extenso = Extenso & VECentenas(Mil) & " Mil "
       End If
       Existe = True
   End If
 
   If Unidades > 0 Then
       If Existe And Int(Unidades / 100) = Unidades / 100 Then Extenso = Extenso & " "
       Extenso = Extenso & VECentenas(Unidades) & " "
   End If
   If Extenso = "Un Millón " Then Extenso = Extenso & "de"
   Extenso = Trim(Extenso) & " " & NomMoneda
   If Centavo > 0 Then
       Extenso = "** " & Extenso & " con " & VECentenas(Centavo) + " Centavos.**"
   Else
       Extenso = "** " & Extenso & ".**"
   End If
   ValoresExtenso = Extenso
 
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Convertir número a letra

Publicado por Sergio (1 intervención) el 25/03/2019 04:11:10
Es muy útil. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Santos
Val: 22
Ha disminuido 1 puesto en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Santos (8 intervenciones) el 25/03/2019 13:13:52
Por nada Sergio...
Un Favor a todos, valorar las respuestas, ya que eso nos ayuda a seguir colaborando en este espacio...
Favor Valorar ya sea Negativo como Positivo...
Saludos y Muchas Bendiciones....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Convertir número a letra

Publicado por ALEJANDRO (1 intervención) el 10/11/2019 14:47:06
Santos buenos dias, soy nuevo en esto, entiendo que el código debe ir en un modulo al que llame LETRASNOMINA en el formulario de nomina cree un cuadro de texto que se llama: Montoletras, el campo donde esta la cifra de tipo moneda se llama TOTAL_A_PAGAR, por tanto y siguiendo tu ejemplo quedaria asi: = ValoresExtenso(NETO_A_PAGAR, "Pesos", 2), pero no se donde ponerlo estoy muy enredado ayudame por favor
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo
Val: 34
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Wilfredo (10 intervenciones) el 23/03/2020 14:31:31
Buenos días estimado, el código debe de ir en un modulo? o se agrega en alguna propiedad?
gracias por toda la ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 8
Ha aumentado su posición en 26 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por JULIO CESAR (1 intervención) el 25/05/2020 01:17:32
PANTALLA-1

Gracias por el aporte, para mi significa mucho. Utilicé el codigo que compartió, pero me da un error #¡Tipo!. No se por que?

Le comento, me ubiqué en el formulario, en el campo Texto 67, que es uno insertado, porque necesito solo para la pantalla y la impresión, en este campo me ubique en Origen de control y escribí =ValoresExtenso("[Valor]";"Dolares";2), donde valor es el campo del formulario que quiero poner en letras.
El còdigo lo escribi
PANTALLA-2
en el modulo convert, que forma parte de la Macro 1

No se que hice mal, si tal vez me puede ayudar, estaré muy agradecido, estoy incursionando en Access, recièn.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por ever (1 intervención) el 24/11/2019 15:04:15
Buenas soy nuevo en este campo del Access, probando tu código me sale lo siguiente ..en mi campo donde debe de salir el total en letras #¿Nombre?
que puedo hacer en este caso para que no salga este tipo de error en el campo... muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 28
Ha disminuido su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por MARIO (9 intervenciones) el 22/03/2020 02:05:10
Samuel eres lo máximo gracias por tu apoyo, me funcionó correctamente la Función de convertir Números a Letras
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 28
Ha disminuido su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por MARIO (9 intervenciones) el 22/03/2020 17:46:30
Samuel una pregunta por que me arroja error al momento de ejecutar el programa osea en el cuadro de Texto puse lo siguiente:

Nombre : PesosMN
Origen de Control: =PesosMN([Monto Cobrado])

Al final cuando visualizo en una hoja para imprimir me sale lo siguiente:

#Error.... no sale mas mensajes


Gracias por la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo
Val: 34
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Wilfredo (10 intervenciones) el 24/03/2020 20:55:45
Buenas tardes amigo, sigue estos pasos, ya yo lo realice:
1. Debes crear es un modulo para el codigo:

modulo

2. Crea una macro que active la ejecución del código


luego, en abre el formulario donde tienes el campo donde deseas convertir los numero a texto y abres sus propiedades.

macro

3. Abre el formulario donde tienes el campo que muestra la cantidad en letras y a ese campo muestras sus propiedades.
3.1 En el evento DESPUÉS DE ACTUALIZAR vas a incrustar le macro
3.2 Ve a la pestaña de DATOS y en Origen de control colocas: =letras([nombre del campo]), fíjate en la imagen:

propiedades2

Ya con eso no debería de salir el error.
saludos, espero te pueda ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 28
Ha disminuido su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por MARIO (9 intervenciones) el 24/03/2020 21:34:56
Wilfredo muchas gracias por tu ayuda, amigo hay que hacer lo mismo para generar numero a letras en un informe...?

Gracias por tu respuesta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo
Val: 34
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Wilfredo (10 intervenciones) el 24/03/2020 22:31:30
Hola buenas tardes, si es igual. ya como tienes todo creado solo tienes que asignar las propiedades en el campo.
Saludos.
Por favor, recuerda valorar la respuesta.
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 28
Ha disminuido su posición en 5 puestos en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por MARIO (9 intervenciones) el 02/04/2020 22:37:20
Estimado Wilfredo muchas gracias por tu explicación, sabes acabo de empezar a leer tu mensaje una pregunta como creo el MODULO PARA EL CODIGO (1. Debes crear es un modulo para el codigo:)

Yo ya tengo creado el Módulo con el nombre: letra

asi

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
Function letra(Numero)
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......

todo el módulo completo



- También ya tengo creado un Macro11 donde puse asi:

Nombre Macro11

Ejecuto Modulo

Nombre del Módulo: letra

luego lo guarde...

- Y en el formulario o en el informe en la opción de propiedades puse tal como me explicaste

Nombre: letra
Origen de Control: =letra([MontoCobrado])

Al final me sigue saliendo #Error

Yo pienso que no lo estoy creando como debe ser el Módulo Converter...

Por favor espero tus comentarios

Te envío el imagen que me arroja el informe


Error

Muchas gracias por tu ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo
Val: 34
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Wilfredo (10 intervenciones) el 31/03/2020 22:26:18
Hola buenas tardes amigo, tengo un código para convertir números a letras, pero cuando coloco un monto sin céntimos, coloca solo le cifra en letras sin los céntimos en cero, ejemplo; (1593,00 = mil quinientos noventa y tres) este valor es el que actualmente muestra.
(1593,00 = mil quinientos noventa y tres con 00/100 céntimos) este es el valor deseado.

Si coloco una cantidad con sentimos por ejemplo : 1593,23 entonces si muestra mil quinientos noventa y tres con 23/100 céntimos

Este es el código:

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
Function letra(Numero)
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) & " CON " & Trim(Decimales) & "/100 SOLES"
Else
Cadena = Cadena & " " & Trim(CadCientos) & " CON " & Trim(Decimales) & "/100 SOLES"
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



Agradecería toda la ayuda posible amigos. Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Anonimo (3315 intervenciones) el 01/04/2020 01:00:39
Revisa esta parte, analiza lo que hace y …. resuelves el problema:

1
2
3
4
5
6
7
………...
If Decenadecimal = 0 And Unidaddecimal = 0 Then
ConvierteDecimal = ""
Else
ConvierteDecimal = txtDecenadecimal & txtUnidaddecimal
End If
…………...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Convertir número a letra

Publicado por WILFREDO (1 intervención) el 01/07/2020 23:17:18
Buenas tardes amigos, podrían ayudarme con este código por favor:
Quisiera que en la conversión a texto, colocara cuando la cantidades son exactas; CON 00 CENTIMOS
Actualmente lo hace pero solo cuando hay decimales. pero cuando no hay decimales, solo coloca la cantidad entera.

Agradecería toda la ayuda posible.
Saludos

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
Option Compare Database
Function letra(ByVal Numero As Double)
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, vbTrue, vbFalse, vbTrue)
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
    CadMillones = "UN"
    Cadena = 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 = StrConv(Cadena & " " & Trim(CadCientos) & " CON " & ConvierteDecimal(Decimales) & " CÉNTIMOS", vbLowerCase)
        Else
        Cadena = Cadena & " " & Trim(CadCientos) & " CON " & ConvierteDecimal(Decimales) & " CÉNTIMOS"
        End If
    letra = Trim(Cadena)
    End If
    letra = Trim(Cadena)
End If
letra = Trim(Cadena)
Debug.Print Cadena
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"
    If Len(Texto) > 1 Then
        txtUnidaddecimal = "UN"
    Else
        txtUnidaddecimal = "UNO"
    End If
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
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo
Val: 34
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Wilfredo (10 intervenciones) el 07/07/2020 19:23:35
Hola buenas tardes amigo, entre las comillas coloco el valor que quiero que aparezca y no muestra nada; "00/100"
agradecería toda la ayuda posible
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Anonimo (3315 intervenciones) el 08/07/2020 01:48:11
He copiado tu código y creado unos puntos de control de llamadas a las subrutinas, tras ellas el resultado devuelto:
En la ventana de inmediato, este ha sido el resultado:

?letra(1234567.00)
---- ConvierteCifra 1
UN
---- ConvierteCifra 234
DOSCIENTOS TREINTA Y CUATRO
---- ConvierteCifra 567
QUINIENTOS SESENTA Y SIETE
---- ConvierteDecimal 00
CON 00 CENTIMOS
+++++ UNMILQUINIENTOS SESENTA Y SIETE CON 00 CENTIMOS
UN MILLON DOSCIENTOS TREINTA Y CUATRO MIL QUINIENTOS SESENTA Y SIETE
UN MILLON DOSCIENTOS TREINTA Y CUATRO MIL QUINIENTOS SESENTA Y SIETE


Se aprecia que la función modificada hace lo que tiene que hacer.

Entre las líneas 43 y 44 he introducido esto:
1
Debug.Print "+++++ " & Trim(CadMillones & CadMiles & CadCientos & caddecimales)

Es a partir de ella donde esta el lio y …. tendrás que deshacer el ovillo (o no haberlo liado)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo
Val: 34
Ha mantenido su posición en Access (en relación al último mes)
Gráfica de Access

Convertir número a letra

Publicado por Wilfredo (10 intervenciones) el 29/07/2020 16:43:06
Hola buenos días, gracias por tu apoyo estimado, pero aun sigo sin poder resolver, te muestro lo que realmente quiero:

fac

Adjunto el código que estoy usando.

Gracias por toda la ayuda posible.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Anonimo (3315 intervenciones) el 28/04/2021 20:23:19
Tienes esto:

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
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) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "con/100 M.N."
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "/100 M.N."
End If
letra = Trim(Cadena)
End If
End If

Borra lineas y dejalo asi:

1
2
3
4
5
6
7
8
9
10
11
12
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) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "con/100 M.N."
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "/100 M.N."
End If
letra = Trim(Cadena)
End If

Intentare dejarlo mas visible ....

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) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "con/100 M.N."
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "/100 M.N."
End If
letra = Trim(Cadena)
End If
End If

Asi tambien funcionara

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) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "con/100 M.N."
Else
Cadena = Cadena & " " & Trim(CadCientos) & " " & "Con " & Trim(Decimales) & "/100 Soles"
'Cadena = Cadena & " " & Trim(CadCientos) & " PESOS " & Trim(Decimales) & "/100 M.N."
End If
letra = Trim(Cadena)
End If
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Carlos Fletes (1 intervención) el 20/05/2021 17:19:26
SI me sirvió el código,
Muchas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Convertir número a letra

Publicado por Sandra (16 intervenciones) el 17/09/2021 02:33:14
Gracias por el aporte, me ayudo mucho.
Había visto otros, pero estaban demasiado extensos y muy complejos, ya que apenas comienzo a programar,
saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Miguel Angel Texon Gonzalez (1 intervención) el 16/10/2021 17:52:22
Excelente rutina, muchas gracias por compartir
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por GERARDO J (1 intervención) el 29/11/2022 00:48:23
SAMUEL, eres mi heroe, me funciono correctamente. Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Convertir número a letra

Publicado por Alejandro Lagos Calderon (8 intervenciones) el 14/01/2023 16:34:14
Hola como estas, me gustaria tu ayuda si es posible, tengo una base de access en la cual genero los contratos de trabajos de los colegas, teniendo un campo sueldo_base y otro campo sueldo_base_en_letras, no he podido conseguir alguna funcion que me ayude desde access para convertir el campo a las letras y que utilizo correspondencia en word para generar el contrato, me podrias ayudar a utilizar este ejemplo, de ante mano muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Convertir número a letra

Publicado por Anonimo (3315 intervenciones) el 14/01/2023 18:35:26
Tras ojear el hilo y la información que contiene (ejemplos varios incluidos) mas las modificaciones para su adaptación a diversas monedas (solo al tipo de moneda, la traducción de la cifra a texto al final es la misma) creo que pocas dudas debería haber y de haber alguna: ser muy concreta.

Recomiendo leer nuevamente el hilo (no solo el primer post y el ultimo) y seguir con paciencia los pasos, es muy probable que se resuelva con un simple 'copiar y pegar' y tras ello si aparece un problema concreto: se publica para encontrar la solución.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar