Hoy trabajaremos con los TextBox de un UserForm para dar una posible solución a un lector que preguntaba:
El objetivo es obtener la suma acumulada de todos esos 90 textbox sin tener que sumar uno por uno...
En el ejemplo me plantaré en la suma de 9 textbox:
Para ello en el editor de VB insertaremos un UserForm y dentro de él los siguientes controles:
- 9 TextBox con nombres TxtCal1,TxtCal2,TxtCal3...TxtCal9
- 1 TextBox con nombre txtResultado
- 1 CommandButton cmdSalir
- 1 CommandButton cmdCalculo
- 1 label
Es muy importante el patrón a la hora de dar nombre a los controles!!.
Para conseguir nuestro objetivo insertamos los siguientes evento en la ventana de código del UserForm:
Y listo... como podemos comprobar en la primera imagen del post, la suma se obtiene de manera correcta.
OJO!!, recuerda escribir los números decimales con tu separador decimal... en mi caso la coma!
[...] Quiero sumar varios Textbox. Son como 90. y todos empiezan con: Peso2 y un número que va del 1 al 90. Cómo puedo hacer para que me los sume automáticamente y los ponga en otro textbox?[...] |
El objetivo es obtener la suma acumulada de todos esos 90 textbox sin tener que sumar uno por uno...
En el ejemplo me plantaré en la suma de 9 textbox:
Para ello en el editor de VB insertaremos un UserForm y dentro de él los siguientes controles:
- 9 TextBox con nombres TxtCal1,TxtCal2,TxtCal3...TxtCal9
- 1 TextBox con nombre txtResultado
- 1 CommandButton cmdSalir
- 1 CommandButton cmdCalculo
- 1 label
Es muy importante el patrón a la hora de dar nombre a los controles!!.
Para conseguir nuestro objetivo insertamos los siguientes evento en la ventana de código del UserForm:
Private Sub cmdCalculo_Click() Dim ctrl As Control 'crea un objeto tipo Control suma = 0 'recorre cada control dentro del formulario For Each ctrl In Me.Controls 'comprueba si es un TextBox If TypeName(ctrl) = "TextBox" Then 'y que el TextBox se llama "TxtCal..." y tiene dato If InStr(1, ctrl.Name, "TxtCal") > 0 And ctrl.Text <> "" Then 'en ese caso acumulamos el valor del TextBox suma = suma + CDbl(Controls(ctrl.Name).Value) End If End If Next ctrl 'y acabamos llevando el acumulado al último textbox Me.txtResultado.Value = suma End Sub Private Sub cmdSalir_Click() 'salimos del UserForm Unload Me End Sub
Y listo... como podemos comprobar en la primera imagen del post, la suma se obtiene de manera correcta.
OJO!!, recuerda escribir los números decimales con tu separador decimal... en mi caso la coma!
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.