Excel VBA: Error, se requiere objeto

Tengo creado un Form con 59 TextBox. Quiero que al activar el form, se rellene cada TextBox con el valor de una celda de una hoja excel. Al ser unte bastante repetitivo lo he puesto de la siguiente forma:

Dim MatrizTextos(6 To 64) As String

Private Sub UserForm_ACTIVATE()
Workbooks.Open Ruta_Consumos
Worksheets("Tarifak").Visible = True
Worksheets("TARIFAK").Activate

Dim i As Long 'Toma los valores de las celdas de la hoja excel
For i = 6 To 64
MatrizTextos(i) = Sheets("TARIFAK").Cells(i, 1)
Next i

Dim j As Long 'Rellena los TexBox con lo valores tomados
Dim texto As String
Dim MiTextBox
For j = 1 To 59
texto = "TextBox" & j
Set MiTextBox = texto
MiTextBox.Value = MatrizTextos(j + 5)
Next j

End Sub

El problema es que me da error ya que "texto" no es un objeto, no toma el valor de la variable que debería ser "TextBox1", "TextBox2", hasta "textBox59"

1 respuesta

Respuesta
1

Tienes razón en tu observación de que es lo que genera el error, el modo de solucionarlo es usar la función CONTROLS del modo en el que sigue (como verás he suspendido el uso de la matriz para capturar los datos de las celdas, sin embargo no debe dar problema alguno)

Private Sub UserForm_ACTIVATE()
''Modificado por FSerrano en 120321
''Para Isotz en TodoExpertos.com
''Establece los valores para un conjunto de[color=#666666] [/color]TextBox de
''acuerdo a los valores de las celdas especificadas
Workbooks.Open Ruta_Consumos
Worksheets("Tarifak").Visible = True
Worksheets("TARIFAK").Activate
Dim CTRL As Control
For i = 1 To 59
    Set CTRL = Me.Controls("TextBox" & i)
    CTRL.Text = Sheets("TARIFAK").Cells(i + 5, 1).Value
Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas