Visual Basic - Convertir un número en letras

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Mario Joaquin
Val: 19
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Convertir un número en letras

Publicado por Mario Joaquin (10 intervenciones) el 12/02/2020 23:35:29
Buenas tardes,
Quisiera saber cual seria el código para conveRtir un numero en letras, considerando que cuando se digite 1 se convierte "UNA" y si se digita 21 se convierta a "VEINTIUN", 31 se conviert en "TREINTA Y UN"...

Me pueden ayudar.

Saludos cordiales,
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
Imágen de perfil de Andres Leonardo
Val: 3.863
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Convertir un número en letras

Publicado por Andres Leonardo (1604 intervenciones) el 13/02/2020 17:44:00
spero esto te ayude
crea un nuevo proyecto , pon un text y un boton y pega esto cuando pones un numero y presionas el boton te debera decir la cantidad



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
Private Sub Command1_Click()
    MsgBox Cant_2_Letra(Val(Text1.Text))
End Sub
 
 
Private Function Cant_2_Letra(cantidad As Integer) As String
Dim PonUnidades As Boolean
Dim Resultado As String
Dim centenas As Integer
Dim decenas As Integer
Dim unidades As Integer
Resultado = ""
centenas = Int(cantidad / 100)
decenas = Int((cantidad Mod 100) / 10)
unidades = cantidad Mod 10
Select Case cantidad
Case 100
Resultado = "CIEN "
Case 1
Resultado = "UN "
Case Else
Select Case centenas
Case 1
Resultado = "CIENTO "
Case 2
Resultado = "DOCIENTOS "
Case 3
Resultado = "TRECIENTOS "
Case 4
Resultado = "CUATROCIENTOS "
Case 5
Resultado = "QUINIENTOS "
Case 6
Resultado = "SEISCIENTOS "
Case 7
Resultado = "SETECIENTOS "
Case 8
Resultado = "OCHOCIENTOS "
Case 9
Resultado = "NOVECIENTOS "
End Select
PonUnidades = unidades <> 0
Select Case decenas
Case 1
PonUnidades = False
Select Case unidades
Case 0
Resultado = Resultado + "DIEZ "
Case 1
Resultado = Resultado + "ONCE "
Case 2
Resultado = Resultado + "DOCE "
Case 3
Resultado = Resultado + "TRECE "
Case 4
Resultado = Resultado + "CATORCE "
Case 5
Resultado = Resultado + "QUINCE "
Case Else
Resultado = Resultado + "DIECI"
PonUnidades = True
End Select
Case 2
Select Case unidades
Case 0
Resultado = Resultado + "VEINTE "
PonUnidades = False
Case Else
Resultado = Resultado + "VEINTI"
End Select
Case 3
Resultado = Resultado + "TREINTA "
Case 4
Resultado = Resultado + "CUARENTA "
Case 5
Resultado = Resultado + "CINCUENTA "
Case 6
Resultado = Resultado + "SESENTA "
Case 7
Resultado = Resultado + "SETENTA "
Case 8
Resultado = Resultado + "OCHENTA "
Case 9
Resultado = Resultado + "NOVENTA "
End Select
If decenas > 2 And PonUnidades Then
Resultado = Resultado + "Y "
End If
If PonUnidades Then
Select Case unidades
Case 1
Resultado = Resultado + "UN "
Case 2
Resultado = Resultado + "DOS "
Case 3
Resultado = Resultado + "TRES "
Case 4
Resultado = Resultado + "CUATRO "
Case 5
Resultado = Resultado + "CINCO "
Case 6
Resultado = Resultado + "SEIS "
Case 7
Resultado = Resultado + "SIETE "
Case 8
Resultado = Resultado + "OCHO "
Case 9
Resultado = Resultado + "NUEVE "
End Select
End If
End Select
Cant_2_Letra = Resultado
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 Mario Joaquin
Val: 19
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Convertir un número en letras

Publicado por Mario Joaquin (10 intervenciones) el 13/02/2020 17:50:54
Gracias Andres, solo una consulta, se podria de alguna manera diferencia que cuando se digite 1 se escriba en "UNA", pero de los 20 en adelante sea VEINTIUNO, TREINTA Y UN, CUARENTA Y UN... etc., crees que es posible.

Saludos cordiales,


Mario Joaquin
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 Andres Leonardo
Val: 3.863
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Convertir un número en letras

Publicado por Andres Leonardo (1604 intervenciones) el 14/02/2020 16:29:04
Cambia el UN por UNA
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
Private Function Cant_2_Letra(cantidad As Integer) As String
Dim PonUnidades As Boolean
Dim Resultado As String
Dim centenas As Integer
Dim decenas As Integer
Dim unidades As Integer
Resultado = ""
centenas = Int(cantidad / 100)
decenas = Int((cantidad Mod 100) / 10)
unidades = cantidad Mod 10
Select Case cantidad
Case 100
Resultado = "CIEN "
Case 1
Resultado = "UNA "
Case Else
Select Case centenas
Case 1
Resultado = "CIENTO "
Case 2
Resultado = "DOCIENTOS "
Case 3
Resultado = "TRECIENTOS "
Case 4
Resultado = "CUATROCIENTOS "
Case 5
Resultado = "QUINIENTOS "
Case 6
Resultado = "SEISCIENTOS "
Case 7
Resultado = "SETECIENTOS "
Case 8
Resultado = "OCHOCIENTOS "
Case 9
Resultado = "NOVECIENTOS "
End Select
PonUnidades = unidades <> 0
Select Case decenas
Case 1
PonUnidades = False
Select Case unidades
Case 0
Resultado = Resultado + "DIEZ "
Case 1
Resultado = Resultado + "ONCE "
Case 2
Resultado = Resultado + "DOCE "
Case 3
Resultado = Resultado + "TRECE "
Case 4
Resultado = Resultado + "CATORCE "
Case 5
Resultado = Resultado + "QUINCE "
Case Else
Resultado = Resultado + "DIECI"
PonUnidades = True
End Select
Case 2
Select Case unidades
Case 0
Resultado = Resultado + "VEINTE "
PonUnidades = False
Case Else
Resultado = Resultado + "VEINTI"
End Select
Case 3
Resultado = Resultado + "TREINTA "
Case 4
Resultado = Resultado + "CUARENTA "
Case 5
Resultado = Resultado + "CINCUENTA "
Case 6
Resultado = Resultado + "SESENTA "
Case 7
Resultado = Resultado + "SETENTA "
Case 8
Resultado = Resultado + "OCHENTA "
Case 9
Resultado = Resultado + "NOVENTA "
End Select
If decenas > 2 And PonUnidades Then
Resultado = Resultado + "Y "
End If
If PonUnidades Then
Select Case unidades
Case 1
Resultado = Resultado + "UN "
Case 2
Resultado = Resultado + "DOS "
Case 3
Resultado = Resultado + "TRES "
Case 4
Resultado = Resultado + "CUATRO "
Case 5
Resultado = Resultado + "CINCO "
Case 6
Resultado = Resultado + "SEIS "
Case 7
Resultado = Resultado + "SIETE "
Case 8
Resultado = Resultado + "OCHO "
Case 9
Resultado = Resultado + "NUEVE "
End Select
End If
End Select
Cant_2_Letra = Resultado
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 Mario Joaquin
Val: 19
Ha disminuido su posición en 3 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Convertir un número en letras

Publicado por Mario Joaquin (10 intervenciones) el 14/02/2020 16:46:06
Muchisimas gracias por su ayuda... Que tenga un buen día.

Saludos cordiale,
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