Visual Basic para Aplicaciones - Suma de valores de TextBox con punto y decimales

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 04/06/2016 22:44:24
Hola a todos, gracias por leer.

Mi consulta es la siguiente:

En el TextBox1, TextBox2, TextBox3, TextBox4.....debiera ingresar subtotales con valores numericos con (2) decimales, utilizando por una cuestion de agilidad y comodidad, el ( . ) punto numeral del lteclado

Y en el TextBox5, ver como va variando en el formulario el resultado a medida que modifico los subtotales.

La idea final es, llevar todos estos valores a su vez a una hoja de excel, ubicar cada uno en su celda correspondiente......y a travez de un gran código que alguna vez copié por ahí y que por el momento funciona, pasar el monto total a letras.

Es posible esto?


Bueno nada, espero encontrar alguna ayuda y haberme hecho entender.
Desde ya muchísimas 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
sin imagen de perfil

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 05/06/2016 01:49:42
Bueno, este es el modo que encontre momentaneamente, para resolver el uso del ´punto en el teclado para el tema de los decimales, y a su vez....automaticamente puedo ir viendo como se va modificando el resultado en el formulario.

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
Private Sub TextBox8_Change()
Sumar
End Sub
Private Sub TextBox10_Change()
Sumar
End Sub
Private Sub TextBox12_Change()
Sumar
End Sub
Private Sub TextBox14_Change()
Sumar
End Sub
Private Sub TextBox16_Change()
Sumar
End Sub
Private Sub TextBox18_Change()
Sumar
End Sub
 
Private Sub Sumar()
Dim Suma As Double
Suma = Val(TextBox8.Value) + Val(TextBox10.Value) + Val(TextBox12.Value) + Val(TextBox14.Value) + Val(TextBox16.Value) + Val(TextBox18.Value)
TextBox19.Value = Format(Suma)
 
 
End Sub


Que problema me faltaría resolver? Que ahora, al volcar estos valores a la hoja de excel....ej.: (110.40) , no me lo toma como número, y obviamente no puedo hacer el cálculo. Intento desde la hoja cambiarle el formato a número, pero no me lo toma. Yo en realidad no necesito que sea un punto el separador de decimales, de hecho, quisiera q sea una coma, el tema es que desde el numlock quiero utilizar el punto para con los decimales.
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 15/06/2016 15:54:03
Hola

Intenta almacenar el valor del TextBox en una variable de tipo string

1
2
3
4
5
6
7
8
Dim valor As String
 
valor = "1850.50"
 
With Range("a5")
    .Value = Replace(valor, ".", ",")
    .NumberFormat = "0,00"
End With
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

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 17/06/2016 01:47:39
Hola Gerardo, ante todo millón de gracias por la solidaridad a mi problema. Te comento que soy solo un entusiasta tratando de elaborar este proyecto, a base de que me gusta no solo llegar a mi objetivo, si no que también aprender, pensar y tratar de encontrarle la lógica y la vuelta con mi poco conocimiento. Dicho esto, estoy haciendo todos los video tutoriales q se encuentran acá en la página de VBA para Aplicaciones, al cuál estoy aprendiendo un montón y estoy muy agradecido.

Volviendo al tema, te cuento que todavía no supe adaptar tu solución, no tengo bien claro donde iría este códgo, si en un módulo, o en cada textbox donde ingreso los montos, etc. La realidad es q lo puse en todas partes, y no supe hacerlo funcionar. Pero me diste una herramienta más, q seguramente me servirá y t lo agradezco de corazón.

Simplemente quiero lograr que a medida q ingreso dichos montos (+2 decimales) en cada textbox, no tener que llegar al ultimo textbox donde iría el resultado para visualizarlo. Por otro lado, es muy incómodo tener q ir a la *coma del teclado para separar los decimales, por eso queria utilizar el *punto del teclado numeral para con los decimales, y nada...luego solo ubicar todos estos datos, en una hoja excel.

Bueno, sin más, seguiré practicando. UN MILLÖN DE GRACIAS, y un gran abrazo. :)
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 02:17:52
hola

puedes subir tu archivo de excel?
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 14:39:01
Hola de nuevo

Intenta con esto

1
2
3
4
5
6
7
8
Private Sub TextBox7_Change()
 
With Hoja1.Range("L111")
    .Value = Replace(TextBox7.Value, ".", ",")
    .NumberFormat = "0,00"
End With
 
End Sub
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

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 17/06/2016 17:05:43
Buen día Gerardo, tampoco funciona...si pongo ej.: 100.50 (cien con 50) al colocar el *punto , no me toma los decimales y queda como 10050 (diez mil cincuenta) tanto en el formulario con en la hoja.
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 17:08:17
Hola


Antes de pegar el valor en la Hoja, dividelo entre 100

Hoja1.Range("L111").Value = TextBox7.Value / 100
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

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 17/06/2016 17:17:23
Y como quedaría entonces....así:

Private Sub TextBox8_Change()
Hoja1.Range("a69").Value = TextBox8.Value / 100
With Hoja1.Range("A69")
.Value = Replace(TextBox8.Value, ".", ",")
.NumberFormat = "0,00"
End With


End Sub


Porque de ese modo, me arrojaría montón de ceros.
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 17:18:54
Quedaria solo con la siguiente linea

Hoja1.Range("a69").Value = TextBox8.Value / 100
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

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 17/06/2016 17:32:11
Pero si en uno de los textbox donde ingreso numeros le pongo esa linea:

" Hoja1.Range("a69").Value = TextBox8.Value / 100 "


Tan solo ingresando un 1 me estaría dando (0,0001) en el formulario, y 0 en excel.
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 17:52:02
Tienes razón en ello

Por lo que entiendo tu configuración regional usa la *coma como separador de decimales, en mi Excel es el *punto el separador de decimales


Probemos haciendo una funcion en VBA

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Private Sub TextBox7_Change()
 
Hoja1.Range("L111").Value = ConvertirNumero(TextBox7.Value)
 
 
End Sub
 
Public Function ConvertirNumero(num As Variant) As Double
 
Dim i As Byte
 
ConvertirNumero = num
 
For i = 1 To Len(num)
    If Mid(num, i, 1) = "." Then
        If Len(num) - i = 2 Then
            ConvertirNumero = num / 100
        ElseIf Len(num) - i = 1 Then
            ConvertirNumero = num / 10
        End If
    End If
Next i
 
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
sin imagen de perfil

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 17/06/2016 18:24:37
De este modo si pongo :

1 =1....

pero ...

10.20 =1020 (tanto en el formulario como en la hoja)

Si, por defecto en la hoja de excel aunque utilice el punto del teclado, el separador de decimales es la coma. Lo mismo queria lograr desde el formulario....poner el punto para separar decimales asi como hago en la hoja de excel y que salga como una *coma. Pero desde el formulario si utilizo el *punto aparece como *punto y obviamente al llevar ese dato a la hoja....excel no comprenda q es un valor, y ahi mi probema :)
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 18:28:57
El código que puse arriba según no soluciono nada D:??
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 GERARDO
Val: 8
Ha disminuido su posición en 72 puestos en Visual Basic para Aplicaciones (en relación al último mes)
Gráfica de Visual Basic para Aplicaciones

Suma de valores de TextBox con punto y decimales

Publicado por GERARDO (22 intervenciones) el 17/06/2016 18:45:18
Hola
Hice un sencillo Excel con 5 textbox , en mi caso, si ingresan una *coma la cambia por *punto

si yo pongo 150,50 en la hoja y en el formulario queda 150.5 , si pongo 1 en la hoja y formulario queda 1 si pongo 169,9 en la hoja y el formulario queda 169.9

En tu caso , solo tendrias que modificar "," por "." en la siguiente linea del código que tiene el excel
If Mid(num, i, 1) = "." Then

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
sin imagen de perfil

Suma de valores de TextBox con punto y decimales

Publicado por Constantino (9 intervenciones) el 17/06/2016 21:02:14
Hola Gerardo,

No logro conseguirlo, no se si pudiste ver el archivo que subi, pero el UserForm10 (primer solapa) el TextBox8, TextBox10, TextBox12, TextBox14, TextBox16 y TextBox18 irian los montos y en el TextBox19 el resultado, todos estos TextBox a su vez estan ligados con la Hoja1 de excel (RECIBO_SINDICAL) celdas AZ69, AZ73, AZ77, AZ81, AZ85, AZ89 y AZ97 respectivamente.

Repito, mas allá de dar o no con la respueta, MILLÓN DE 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