Textbox

Experto:
Usuario:
Fecha: 16/07/2005
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
12/07/2005
fergica, usuario preguntando en Microsoft Excel
Usuario
Hola Elsa
Hace unos días le formule una pregunta la cual me respondio satisfactoriamente y ahora tengo otra pregunta.

La pregunta y respuesta inicial es la siguiente:

Espero me puedas responder esto:
Tengo 3 textbox, en los dos primeros introduzco valores numericos y el tercero me muestra la suma, lo que necesito es colocarle un formato numérico a los textbox. He utilizado por ejemplo: textbox1 = format(val(textbox4.value),"#,##0"), pero en le tercer textbox aparece como si concatenara los datos.
RESPUESTA:
Dim mivalor As Double
Private Sub TextBox1_AfterUpdate()
mivalor = TextBox1
TextBox1 = Format(Val(TextBox1.Value), "#,##0")
TextBox3 = TextBox1
End Sub

Private Sub TextBox2_AfterUpdate()
mivalor = mivalor + TextBox2
TextBox2 = Format(Val(TextBox2.Value), "#,##0")
TextBox3 = Format(Val(mivalor), "#,##0")
End Sub

De tener más controles deberán tener las mismas instrucciones que el textbox2

MI PREGUNTA ES:
Cuando coloco el valor en el textbox1 y textbox2 me aparece la sumatoria en textbox3. Al yo corregir el valor en el textbox2 me aparecera la sumatoria de los 3 valores ingresados 1 valor del textbox1 y 2 valores del textbox2. Hay alguna otra manera de lograr que al corregir un dato en uno de los textbox no se acumule en la sumatoria?

Gracias
14/07/2005
fergica, experto respondiendo en Microsoft Excel
Experto
Hola:
Es cierto, estaba programado para un ingreso 'sin' posibilidades de error.
Aquí va todo nuevamente con las rutinas que faltaron:

Dim mivalor As Double

'contempla una posible entrada para corrección
Private Sub TextBox1_Enter()
mivalor = mivalor - Val(TextBox1.Value)
End Sub

Private Sub TextBox1_AfterUpdate()
mivalor = mivalor + TextBox1
TextBox1 = Format(Val(TextBox1.Value), "#,##0")
TextBox3 = Format(Val(mivalor), "#,##0")
End Sub

'contempla una posible entrada para corrección
Private Sub TextBox2_Enter()
mivalor = mivalor - Val(TextBox2.Value)
End Sub

Private Sub TextBox2_AfterUpdate()
mivalor = mivalor + TextBox2
TextBox2 = Format(Val(TextBox2.Value), "#,##0")
TextBox3 = Format(Val(mivalor), "#,##0")
End Sub

Quiero aclarar que siempre es mejor tener un botón de aceptación luego de cargar todos los datos, que actualizar sobre la marcha.....

Espero que ahora cumpla con tus necesidades.

Saludos
Elsa
http://es.geocities.com/lacibelesdepunilla/macros
15/07/2005
fergica, usuario preguntando en Microsoft Excel
Usuario
Hola Elsa

Muchas gracias por la solución pero tengo una duda, como sería el botón de aceptación?
16/07/2005
fergica, experto respondiendo en Microsoft Excel
Experto
Botón de aceptación? Qué es eso? Qué poco científico lo mío.... bueno es solo un neologismo para referirme a un botón de comando que lo pondría a continuación de los textbox, con caption 'Aceptar' y ahí pondría la instrucción de volcar el resultado en el textbox3, y seguramente volcar este resultado en algún lugar... no sé cómo continúa tu proceso.

Pero así como lo tenés ahora está muy bien también.

Saludos
Elsa
16/07/2005
fergica, usuario preguntando en Microsoft Excel
Usuario
Muchas Gracias por ayudarme su ayuda a sido muy valiosa
Enlaces patrocinados