Como Abrir y Trabajar en una Hoja de Trabajo a partir de un formulario VBA Excel

Tengo un Formulario en el cual con un Combobox me despliega una lista que es equivalente a los nombres de las hojas de trabajo que poseo, lo que quiero lograr es que al seleccionar cualquier palabra del combobox me redirija a la hoja de trabajo y ademas llenar datos o trabajar en esa hoja de trabajo llenando datos con el formulario que ya previamente he creado. He logrado hacer que se cambie la information a la hoja de trabajo, es decir si en el combo box seleccione Hoja 10, el se cambia a la hoja 10, pero al llenar la information del formulario no funciona y me da error.

1 Respuesta

Respuesta
1

No es necesario cambiarse a la "hoja de trabajo", solamente hay que hacer referencia a la hoja.

Pon lo siguiente para llenar tu combobox1

Private Sub UserForm_Activate()
'Cargar hojas en el combobox1
    For Each h In Sheets
        ComboBox1.AddItem h.Name
    Next
End Sub

Ahora en un botón pon lo siguiente:

Private Sub CommandButton1_Click()
'Pasar datos a la hoja
    If ComboBox1.Value = "" Or ComboBox1.ListIndex = -1 Then
        MsgBox "Selecciona una hoja del combo", vbExclamation
        ComboBox1.SetFocus
        Exit Sub
    End If
    '
    'establecer en h1 la hoja que seleccionaste en el combo
    Set h1 = Sheets(ComboBox1.Value)
    'encontrar siguiente fila vacía de la columna "A" para poner los datos
    u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Cells(u, "A") = TextBox1.Value
    h1.Cells(u, "B") = TextBox2.Value
    '
    MsgBox "Datos actualizados"
End Sub

Solamente estoy poniendo un ejemplo, en esta parte establezco cuál será la "hoja de trabajo", será la seleccionada en el combobox1, entonces paso los datos de esta forma

    u = h1.Range("A" & Rows. Count).End(xlUp). Row
 h1.Cells(u, "A") = TextBox1.Value
    h1.Cells(u, "B") = TextBox2.Value

En las instrucciones, hago referencia a h1, ese objeto contiene la hoja que seleccionaste en el combo, entonces esto: h1.Cells(u, "A") = TextBox1.Value  significa que en la hoja h1, en la fila "u", en la columna "A" va a poner el dato que contiene el textbox1


Si necesitas que te ayude con tu código, pega tu código y explícame más o menos que quieres realizar con tu userform.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas