Actualizacion de un ComboBox al modificar un OptionButton.

Hola experto, tengo un libro de Excel que me abre el UserForm1

Al yo escribir en el TextBox1 y TextBox2 una palabra,  el ComboBox me busca en una lista de referencias de motos en un  libro de Excel solo  las referencias  que tienen dichas palabras y me las muestra en su lista desplegable.

Tengo también los OptionButton (ó) y OptionButton (Y) que su función es  que si el OptionButton (o) esta activo, el ComboBox me muestre en su lista desplegable solo las referencias que tiene una de las dos palabras, caso contrario es que si el OptionButton (Y) esta activo el ComboBox me muestre en su lista desplegable las referencias que tienen ambas palabras.

Todo esto me funciona perfectamente, el problema esta en que el ComboBox no se actualiza automáticamente cuando cambio la opción de los OptionButton, Tengo que cerrar  y volver a abrir el UserForm para que esto funcione.

Espero haberme echo entender y aclaro  que no tengo fuertes conocimientos en vb  todo lo e echo investigando en internet, de antemano gracias y espero que alguien me ayude con un código para esta actualización.

1 respuesta

Respuesta
1

Deberás controlar el cambio en cada option realizando las mismas tareas que haces cuando comparas sus valores.

Por ej:

Private Sub OptionButton1_Click()    'boton ó
If OptionButton1.Value = True Then
    'instrucciones para cargar solo 1 de las palabras
End If
End Sub
Private Sub OptionButton2_Click()    'boton Y
If OptionButton1.Value = True Then
    'instrucciones para cargar las 2 palabras
End If

Si tus botones de opción tienen otro nombre debes colocarlos en las rutinas. Si te ofrece alguna dificultad podés dejar aquí las instrucciones que realizan la búsqueda de tal o cual caso. O enviame tu libro al correo cuya dirección aparece en mi sitio.

Sdos

Elsa

En la 2da rutina es OptionButton2.

Private Sub OptionButton2_Click()    'boton Y
If OptionButton2.Value = True Then
    'instrucciones para cargar las 2 palabras
End If

Sdos!

Así quedaría entonces todo el código según tu hoja de muestra:

Private Sub ComboBox1_Click()   'al seleccionar un elemento se coloca en celda
Range("a2").Select
ActiveCell.FormulaR1C1 = ComboBox1
End Sub
Private Sub ComboBox1_Enter()   'al entrar al desplegable se actualiza
'x Elsamatilde
Range("A1").Value = TextBox1
Range("B1").Value = TextBox2
If OptionButton1.Value = True Then   'O
    Range("C1").Value = 2
Else
    Range("C1").Value = 1            'Y
End If
Call llenaCombo
End Sub
Private Sub CommandButton1_Click() 
'Opcional: un botón para limpiar los controles y volver a empezar
ComboBox1.Clear
TextBox1 = "": TextBox2 = ""
TextBox1.SetFocus
End Sub
Private Sub UserForm_Initialize()
Call llenaCombo
End Sub
Sub llenaCombo()
'x Elsamatilde
'limpio de datos anteriores
ComboBox1.Clear
Range("j4").Select
Do While ActiveCell <> Empty
    ComboBox1.AddItem ActiveCell
    ActiveCell.Offset(1, 0).Select
Loop
End Sub

Sdos y no olvides valorar y finalizar la consulta.

Elsa

Elsa que pena contigo no me he sabido explicar bien, te envié un correo con una mejor explicación, te sabré entender si ya no tienes más tiempo para mi. Mil gracias.

Envío imágenes del proceso. No hay necesidad de modificar las macros.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas