Para hacer visible el número de cuadros de texto que marca la etiqueta, podrías utilizar una matriz de controles.
Aquí te cuento como.
En un formulario de un nuevo proyecto añade los siguientes controles:
-Un CommandButton llamado "cmdButton" y con Caption "Mostrar"
-La etiqueta que comentas (llamada Etiqueta247) y de Caption un número determinado (el número debe ser natural)
-Un TextBox llamado "c" y sin texto.
Ajusta la propiedad Index del TextBox "c" a 0.
Este es el código que deberías utilizar:
'CODIGO FUENTE -------------------------------------------------------------
'Recuerda que debes asignar un número natural
'en la etiqueta Etiqueta247
Private Sub cmdButton_Click()
ShowTextBox Val(Etiqueta247.Caption)
End Sub
Private Sub ShowTextBox(ByVal Number As Integer)
On Error Resume Next
For i = 1 To Number - 1
Load c.Item(i)
If Err.Number = 360 Then
Err.Clear
ElseIf Err.Number = 0 Then
c.Item(i).Top = i * c.Item(0).Height + c.Item(0).Top
c.Item(i).Visible = True
Else
Error Err.Number
End If
Next i
If c.Count > Number Then
For i = Number To c.UBound - 1
If i > 0 Then
Unload c.Item(i)
Else
c.Item(i).Visible = False
End If
Next i
End If
End Sub
'CODIGO FUENTE -------------------------------------------------------------
El procedimiento ShowTextBox toma un valor Integer como argumento, que es el número de cajas de texto que debe mostrar.
Mediante un bucle For va cargando TextBox de la matriz de TextBox "c".
Empieza cargando desde 1, puesto que la caja de texto inicial creada en tiempo de diseño (con índice 0 en nuestro caso) ya está cargada.
Al cargar un elemento comprueba, en primer caso, si se ha producido el error 360, es decir, si el elemento que se ha cargado ya estaba cargado antes.
Esto ocurrirá en posteriores llamadas al procedimiento, puesto que éste aprovecha los TextBox ya cargados en anteriores llamadas, cargando más en el caso que falten más porque el número de TextBox deseado en la llamada actual es mayor que el que se pasó en la llamada anterior.
Si no hay errores (código de error 0), entonces establece la coordenada Top del nuevo TextBox y establece su propiedad Visible en True.
Si el error producido es otro, lo muestra.
En el caso que sobren TextBox, elimina los sobrantes con un segundo bucle For.
Véase que para el TextBox con índice 0 no llama a Unload, si no que establece su propiedad Visible en False. Esto es así porque el TextBox inicial, el creado en tiempo de diseño, no puede descargarse.
Espero que te sea de ayuda.
Hasta otra,
Zoto