Manejo de cuadros combinados en Excel 2007?

Necesito hacer un formulario donde maneje 2 cuadros combinados uno
relacionado del otro. Por ejemplo en un cuadro combinado tengo una lista de
países, y quiero que al escoger el país, en el otro cuadro combinado salgan las
ciudades pertenecientes al país que escogí automáticamente. ¿POR favor es un poco
urgente Alguna idea para desarrollar esto?

1 respuesta

Respuesta
1

Te anexo una macro para lo que necesitas.
Sigue las Instrucciones
1. Abre tu hoja de excel
2. Para abrir Vba-macros y poder pegar la macro, Presiona ALt + F11
3. En el menú elige Insertar / UserForm
4. En el panel del UserForm le das dobleclik y copias la macro.
5. En el panel tienes que crear 2 combobox, el combobox1 y el combobox2
6. Los países deberán estar en tu columna A
7. Las ciudades deberán estar en la columna B
Ejemplo
A B
1 México Acapulco
2 México Cancún
3 México Distrito Federal
4 Francia Paris
5 Francia Versalles

'***Macro***
'Pone los valores correspondientes en combobox2
'según el valor seleccionado en combobox1
Private Sub ComboBox1_Change()
'Por.Dam
Me.ComboBox2.Clear
    catego = ComboBox1.Value
    Set hoja = Worksheets("Hoja1")
    ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
    For i = 1 To ufila
        ciudad = Cells(i, 2)
        If Cells(i, 1) = catego Then
            With Me.ComboBox2
                .AddItem ciudad
            End With
        End If
   Next
End Sub
'Pone valores unicos combobox1
Private Sub UserForm_Activate()
'Por.Dam
Dim col As New Collection
    Set hoja = Worksheets("Hoja1")
    ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
    On Error Resume Next
    For i = 1 To ufila
        col.Add Item:=hoja.Cells(i, 1).Value, Key:=CStr(hoja.Cells(i, 1).Value)
    Next i
    For i = 1 To col.Count
        Me.ComboBox1.AddItem col(i)
    Next i
    Me.ComboBox2.Clear
End Sub
'***Macro***

Saludos.Dam

Se podría realizar si macro.....? O sea directamente desde la hoja de excel por medio de la ficha del programador ?

Supongo que tienes excel 2007 ó 2010, si se puede.

Agrega lo siguiente en el combobox1

'Por. Dam
Dim col As New Collection
Set hoja = Worksheets("Hoja1")
ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
On Error Resume Next
For i = 1 To ufila
col.Add Item:=hoja.Cells(i, 1).Value, Key:=CStr(hoja.Cells(i, 1).Value)
Next i
For i = 1 To col.Count
Me.ComboBox1.AddItem col(i)
Next i
Me.ComboBox2.Clear

'***

en el combobox2 agrega lo siguiente:

'***Macro***
'Pone los valores correspondientes en combobox2
'según el valor seleccionado en combobox1
Private Sub ComboBox1_Change()
'Por.Dam
Me.ComboBox2.Clear
catego = ComboBox1.Value
Set hoja = Worksheets("Hoja1")
ufila = hoja.Cells(hoja.Rows.Count, 1).End(xlUp).Row
For i = 1 To ufila
ciudad = Cells(i, 2)
If Cells(i, 1) = catego Then
With Me.ComboBox2
.AddItem ciudad
End With
End If
Next
End Sub

'***Macro***

Saludos. Dam

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas