Ayuda con formulario

Hola Fernando, es que cuando uno se mete con lo que no sabe!
Tengo un formulario, con un ListBox al que le doy tres valores con Sub UserForm_Click() dándole AddItem, ¿eso es correcto? O hay forma de dejarle definitivos los valores al List Box, ademas tiene tres OptionButton y un CommandButton, la idea es la siguiente:
En el ListBox tenemos la siguiente lista:Perros, gatos, loros, y los OptionButton son 1,2 y3
Como infiernos hago para que con cada combinación el formulario me lleve a una hoja determinada, si dan click en perros y señalan 2, algo, si dan click en gatos y señalan 3 otra cosa, y así sucesivamente, dando click en aceptar, me la he pasado toda la mañana preguntándole al pobre clipo, pero me di por vencido y necesito ayuda de alguien que no es un ignorante como yo, así que por eso escribo
Muchas gracias por todo

1 respuesta

Respuesta
1
Te cuento cuál es la usanza. Los listbox suelen cargar sus elementos en en le proceso de activación del formulario. Vale decir que están incluidos en el mismo código de VBA.
Sin perjuicio de ello podría guardarse los valores en el Registro de Windows, pero esto, además de peligroso (por tocar el Registro), limita el uso del archivo a la máquina donde se guardaron tales valores.
Personalmente, hayo más práctico destinar algún sector perdido del archivo para guardar los datos en celdas y luego, al activar el formulario que cargue desde allí lo que encuentre con un loop del tipo:
For Each dato In Range("U2:U6")
ListBox1.AddItem dato.Value
Next dato
---
Respecto a cómo operar con los datos capturados del formulario, la siguiente rutina asociada a un botón te llevará a una de las hojas del libro que responden a ese nombre. Pero debes asegurarte que tales nombres existan.
Ejemplos:
Perros1 - Perros2 - Perros3
Gatos1 - Gatos2 - Gatos3
...
Private Sub CommandButton4_Click()
If OptionButton1 Then
IrAhoja = 1
ElseIf OptionButton2 Then
IrAhoja = 2
ElseIf OptionButton3 Then
IrAhoja = 3
Else
88: MsgBox "NO seleccionó opción. Salgo"
Unload UserForm1
Exit Sub
End If
'Si no hay nada seleccionado, sale de la rutina
If ListBox1.ListIndex = -1 Then
GoTo 88
Else
IrAhoja = Trim(ListBox1.List((ListBox1.ListIndex)) & IrAhoja)
Unload Me
Sheets(IrAhoja).Select
End If
End Sub
Esto creo que resuelve ambas de tus inquietudes.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas