Al sumar totalice en un textbox

Necesito saber porque no me totaliza en un TextBox:

Private Sub TextBox15_Change()
TextBox15 = Val(TextBox2.Value) + (TextBox4.Value) + (TextBox6.Value) + (TextBox8.Value) + (TextBox9.Value)
End Sub

------------------

Que estoy haciendo mal necesito ayuda.

2 Respuestas

Respuesta
1

Al ingresar un dato se produce el 'cambio o change'... Si en ese momento le sumas otros controles nuevamente un cambio... algo no anda bien.

Si el textbox15 sólo es para mostrar un resultado se lo tenes que enviar desde el evento de los otros controles, por ej:

Private Sub TextBox2_Change() 'Repetir en todos menos en el de resultado

TextBox15 = Val(TextBox2.Value) + (TextBox4.Value) + (TextBox6.Value) + (TextBox8.Value) + (TextBox9.Value)
End Sub

Sdos.

Elsa

http://aplicaexcel.galeon.cm/manuales.htm

Qué pena pero no es correcto lo que mencionas. Te remito a la Ayuda VBA:

Control TextBox

La propiedad predeterminada de un control TextBox es Value.

Es decir que colocar Value o no no impide que se vea el resultado.

Y no necesariamente tiene que ser Text:

Comentarios

Para un control TextBox, cualquier valor que asigne a la propiedad Text también se asigna a la propiedad Value.

Sdos!

Sigo el comentario para Tecnopunta:

Por ser Value la propiedad predeterminada del control es redundante colocar :

Val(Textbox2. Value)

Si aparece en el código del ejemplo es porque así lo tenía el usuario y solo me limité a copiar y pegar para continuar con su instrucción, pero NO es necesario ni tampoco está mal.

Lo importante aquí es que se acumula en un TextBox de resultado ante cada cambio del resto de los controles Textbox.

Sdos!

http://aplicaexcel.galeon.com/manual_UF2010.htm 

Private Sub TextBox1_Change()
TextBox2 = Val(TextBox1.Value) * 100
End Sub

Private Sub TextBox11_Change()
TextBox12 = Val(TextBox11.Value) * 200
End Sub

Private Sub TextBox13_Change()
TextBox14 = Val(TextBox13.Value) * 300
End Sub
Private Sub TextBox15_Change()
TextBox15 = Val(TextBox2.Value) * (TextBox12.Value) * (TextBox14.Value)
End Sub

Es de esta forma que lo estoy elaborando el total  de cada uno de los valores  multiplicados por 100,200, y 300 me de el gran total en el textbox15 .

Pero no me refleja el gran textbox15

Gracias

Te indiqué que debes repetir la subrutina MENOS en el control de resultado, que en este caso es el Textbox15:

Private Sub TextBox2_Change() 'Repetir en todos menos en el de resultado

Ahora, para los controles que aquí me colocas, veo que además estás haciendo otros cálculos. Entonces cada resultado debe ser acumulado también en el control 15.

Por lo tanto las subrutinas Change solo van en los controles Textbox1, Textbox11 y Textbox13.

Por ej, para el Textbox1:

Private Sub TextBox1_Change()
TextBox2 = Val(TextBox1.Value) * 100

TextBox15 = Val(TextBox2.Value) * (TextBox12.Value) * (TextBox14.Value)
End Sub

Respuesta
1

Lo que te respondió elsa esta muy bien solo falta un detalle que es obvio pero que no esta puesto en el código es que el textbox donde va a figurar el resultado debes poner .text sino no te va a mostrar nada entences el código quedaría así

Private Sub TextBox2_Change() 'Repetir en todos menos en el de resultado

' el .value me parece que esta mal deberia ser .text

TextBox15.text = Val(TextBox2.value) + Val (TextBox4.Value) + Val(TextBox6.Value) + Val(TextBox8.Value) + Val(TextBox9.Value)
End Sub

Pruébalo y decinos como te fue

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas