Combo box 2 dependiente de combo box 1.

Les agradecería mucho evualuar porque el Combo box 2 no me da las opciones para seleccionar según lo seleccionado en Combo box 1.

El caso es como los países y sus ciudades, tome un código que encontré y trate de adaptarlo a mi necesidad pero no funciona el Combo 2, debo decir que trabajo con con Nombres de Rangos.

Dejo aquí el código para ver si algún experto logra detectar porque no funciona.

Saludos y gracias anticipadas.

Private Sub ComboBox1_Change()
valor = ActiveSheet.ComboBox1.Value
Select Case valor
Case Is = "ANPPM_Tucson_AZ_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Tucson_AZ_Regional_Office"
Case Is = "ANPPM_Los_Angeles_CA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Los_Angeles_CA_Regional_Office"
Case Is = "ANPPM_Santa_Maria_CA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Santa_Maria_CA_Regional_Office"
Case Is = "ANPPM_Oxnard_CA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Oxnard_CA_Regional_Office"
Case Is = "ANPPM_San_Bernardino_CA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_San_Bernardino_CA_Regional_Office"
Case Is = "ANPPM_Washington_DC_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Washington_DC_Regional_Office"
Case Is = "ANPPM_Shreveport_LA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Shreveport_LA_Regional_Office"
Case Is = "ANPPM_Cottonport_LA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Cottonport_LA_Regional_Office"
Case Is = "ANPPM_New_Iberia_LA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_New_Iberia_LA_Regional_Office"
Case Is = "ANPPM_New_Orleans_LA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_New_Orleans_LA_Regional_Office"
Case Is = "ANPPM_Philadelphia_PA_Regional_Office"
ActiveSheet.ComboBox2.ListFillRange = "ANPPM_Philadelphia_PA_Regional_Office"

End Select
End Sub

Respuesta
1

Aparentemente el código está bien, salvo que los nombres de rango tengan alguna diferencia con los nombres que estás seleccionando (un espacio ya hace una diferencia)

Si los elementos que muestras en el combo1 son los nombres de rango, bien podrías haberte evitado tanta escritura de este modo:

Private Sub ComboBox1_Change()
ActiveSheet.ComboBox2.ListFillRange = ComboBox1.Value
End Sub

Revisa que los nombres de rango tengan alcance de 'Libro' .

Sdos y no olvides valorar la respuesta (opciones: excelente o buena) si el tema queda resuelto... sino comenta. En mi blog dejé otros ejemplos que también podrás descargar o ver e video.

Elsa

http://elsamatilde.blogspot.com/2018/06/listas-con-rangos-en-otras-hojas.html 

Hola Elsa

Gracias por responder.

Efectivamente los elementos del Combo 1 son los nombres de Rango para el Combo 2, Cambie el código largo por el código abreviado que me sugieres pero el Combo 2 sigue sin mostrar opciones, los nombres de rango los copie y pegue para evitar diferencias. ¿El combo 1 tiene un rango asignado y una celda vinculada mientras que el Combo 2 solo tiene celda vinculada sin rango asignado (Creo que la macro se lo asigna verdad) sera que me falta algo por definir en las propiedades del combo 2? Slds. Y sigo pendiente de cualquier observación.

Efectivamente, el combo1 tiene su rango asignado y el 2 no. Observa que la propiedad RowSource debe quedar vacía.

¿Por qué no lo eliminas y lo volvés a dibujar al combo2? De modo predeterminado no hay nada que modificar en un control que va a recibir información de otro.

Si me dejas un correo o me escribes al mío (cibersoft PUNTO arg ARROBA gmail.com) te puedo enviar mi ejemplo... o me envias el tuyo para revisarlo.

Sdos!

Gracias, ahora te lo envío, es más fácil tenerlo a la vista.

Ya te envié tu libro con las notas. La macro estaba en otra hoja. Y además el rango hace mención a otra hoja no la de S... HAR.

Te dejé uno de los rangos parcialmente arreglados y ahora ya se ven los elementos en el 2do combo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas