Recorrer textbox

Estoy desarrollando una rutina en VBA project, en ella hay 50 que tiene que entregar la suma total, promedio y el número de datos que están fuera de un rango determinado. Mi problema es que no puedo dar con la función para recorrerlos, tampoco puedo indexarlos, es decir al momento de copiarlos, VBA no me pregunta si deseo crear una colección. Por lo averiguado en la web debo usar la fusión for... Next, pero esta me da: "Se ha producido el error 91 en tiempo de ejecución" variable de objeto o bloque With no establecido. La rutina es la siguiente:
Private Sub CommandButton2_Click()
Dim i As Integer
Dim MIN As Integer
Dim MAX As Integer
Dim TX As TextBox
MIN = RMIN
MAX = RMAX
 For i = 1 To 50
    If TX(i) < MIN Then
    BJPESO = Format(i + 1, "#,###")
    ElseIf TX(1) > MAX Then
    SBPESO = Format(i + 1, "#,###")
    End If
 Next
End Sub 
En donde: RMIN y RMAX son 2 combobox con los valores que establecen el rango, BJPESO y SBPESO son textbox para el resultado.
Agrdeciendo tu tiempo

1 Respuesta

Respuesta
1
No entiendo a que te refieres con: en ella hay 50. ¿50 qué? ¿Cajas de texto?
Si lo anterior no es cierto, con el for recorrerías TX(1), TX(2) hasta el TX(50), y al no tener 50 cajas de texto, se produciría un error.
¿Me puedes detallar un poco más este punto de favor?
Perdón por no haber sido lo suficientemente claro, efectivamente son 50 cajas de texto que debo recorrer para determinar cuantas de ellas están fuera del rango establecido y cual es el promedio de los datos ingresados.
Saludos
donghi
Antes de entrar con min y max, ¿te parece si vemos primero lo de los textbox?
¿Cuándo estabas creando los textbox en el formulario, agregaste uno, luego copiaste ese y pegaste los otros 49? Cuando haces esto, cuando copias y pegas el segundo te pregunta si quieres crear un array. ¿Así lo hiciste? De esa forma, te quedaría TX(1), TX(2), etc.
Haciendo un paréntesis con respecto a lo que te acabo de preguntar, no recuerdo en un array de controles si el primer elemento tiene indice 0, es decir TX(0) o tiene indice 1, es decir TX(1). Si empieza en 0, los controles que tendrías, serían TX(0) a TX(49), y en tu for indicas 50, lo que correspondería a un control TX(50), que no existe. Echale un ojo a esto.
Regresando a cuando agregaste los textbox... O lo que hiciste fue crear uno por uno, quedando TX1, TX2, etc. Obviamente puedes notar que TX1 es muy diferente a TX(1)...
Y por otro lado, veo que defines Dim TX As TextBox. Ya fuera el caso que hayas creado TX1, TX2, etc, o TX(1), TX(2), etc, TX solo, no existe. Si creaste un array (TX(1), TX(2)) probablemente lo que tengas que hacer es cambiar Dim TX As TextBox a Dim TX() As Collection.
¿Me explique con tanto rollo?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas