Datos de userform a cuadro combinado de hoja de excel

Buen día,

Lo que quiero hacer es que a partir de un dato seleccionado en un combobox de un userform me cargue datos a 4 cuadros combinados de hoja 1 de excel.

Por ejemplo:

Datos de combobox de userform:

casa

coche

persona

Y que al seleccionar por ejemplo "casa" en el combobox me cargue datos a los 4 cuadros combinados de la hoja 1. Los datos que se cargarían en los cuadros combinados sería de la hoja 2 del rango (A1:A:15) en caso de seleccionar "casa" en el userform.

Espero me haya explicado bien y solo me queda agradecer por la labor de enseñanza que nos otorgan.

Saludos cordiales.

1 respuesta

Respuesta
1

¿Ya tienes tu userform y los datos en la hoja?

Mejor envíame tu archivo y me explicas qué datos quieres en cuál combo.


Saludos. Dante Amor

Te he enviado la información a tu correo.

Saludos

Te envié el archivo

Saludos. Dante Amor
Si es lo que necesitas.

Gracias por la información pero al parecer me detecta todos los cuadros combinados que pongo en la hoja y procede a cargar valores en todos los cuadros combinados. ¿Cómo puedo hacer para que solo me cargue los valores a los únicos 3 cuadros combinados que deseo y no a los otros cuadros combinados que vaya insertando?

Saludos

La macro que realicé funciona para la hoja que me enviaste.

EL objeto cuadro combinado que utilizas, en sí, es un figura (shape), no hay muchas instrucciones en VBa para su funcionamiento, es decir, no es como un combobox de un userform o de un controlactivex, un combobox es más completo.

Ahora para lo que tienes, si revisas el código de VBa que te envié, tiene la siguiente instrucción

If Left(nombre, 4) = "Drop" Then

Le pregunto que si el nombre del shape comienza con "Drop" entonces que lo seleccione.

Si conoces el nombre del shape, tendrías que poner el nombre completo del shape, para que exclusivamente a ese "cuadro combinado" se le asignen los valores.

Cambia la macro por esta, asigna los valores a los shape 1, 2 y 3

Private Sub ComboBox1_Change()
'Por.DAM
Set b = Rows(1).Find(ComboBox1)
If Not b Is Nothing Then
    For Each combo In ActiveSheet.Shapes
        nombre = combo.Name
        Select Case nombre
            Case "Drop Down 1", "Drop Down 2", "Drop Down 3"
                c = Columns(b.Column).Address(False, False)
                c = Left(c, InStr(1, c, ":") - 1)
                combo.Select
                With Selection
                    .ListFillRange = c & "2:" & c & "5"
                End With
        End Select
    Next
End If
Unload Me
Range("E7").Select
End Sub

Saludos.Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas