Utilizamos Cookies de terceros para generar estadísticas de audiencia y mostrar publicidad personalizada analizando tu navegación. Si sigues navegando estarás aceptando su uso. Más información X
PortadaForo AyudaTutoriales
InicioForosForo Office

Combo box para excel

danuryx
2007-08-15 23:41 - Respuestas: 1 - Tema nº: 2462316


Características: Windows XP Profesional, Dell.

Tengo un problema necesito generar un combo box que busque en una columna de excel informacion no repetida y que la añada a este combobox, asi mismo que cuando elija una opcion de la lista del combobox se me muestre la informacion de todos los registros con esa opcion.

Posibles soluciones:
Combo box para excelCombo box para excel
Conectar mediante un combo de excel a oracleConectar mediante un combo de excel a oracle
Excel 2002 abre mi xls pero excel 2000 noooo...xq???Excel 2002 abre mi xls pero excel 2000 noooo...xq???
Combo ex 110Combo ex 110
Combo dvd/cd-rwCombo dvd/cd-rw
ebolo

Re: Combo box para excel - 2007-08-16 16:33 - Respuesta 2

Hola danuryx, te lo dejo hecho mediante código de VBA.
Copia lo siguiente en la parte de código VBA de la hoja; para ello ves a Herramientas - Macro - Editor de VBA.
Esto lo que hace es que te mete en un combobox los datos distintos que existen en el rango A1:A1000.

Private Sub Worksheet_Activate()
Dim ruta, consulta As String
Dim rs As ADODB.Recordset, cn As ADODB.Connection
Set cn = New ADODB.Connection
Set rs = New ADODB.Recordset

'Definimos la ruta del xls
ruta = "larutadetulibro.xls"

'Abrimos la conexión al libro xls
cn.Open "DRIVER={Microsoft Excel Driver (*.xls)};DBQ=" & ruta

'Creamos el select y abrimos el recordset
consulta = "SELECT distinct * FRom A1:A1000"
rs.Open consulta, cn

'Vaciamos cuadro combinado
Me.ComboBox1.Clear

'Rellenamos cuadro combinado
While Not rs.EOF
If Not IsNull(rs.Fields.Item(0)) Then
Me.ComboBox1.AddItem rs.Fields.Item(0)
End If
rs.MoveNext
Wend

'Cerramos recordset y conexión
rs.Close
Set rs = Nothing
cn.Close
Set cn = Nothing

End Sub


Al elegir un elemento del combo se autofiltra la columna A, a partir de A2, si A1 no es coincidente. Es decir siempre te muestra A1.

Private Sub ComboBox1_Click()
Worksheets("Hoja1").Range("A1:A1000").AutoFilter _
Field:=1, _
Criteria1:=Me.ComboBox1, _
VisibleDropDown:=False

End Sub


Para quitar autofiltro y ver todos los registros, hacer dobleclick en el combo.

Private Sub ComboBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
Me.ComboBox1 = ""
Worksheets("Hoja1").AutoFilterMode = False
End Sub


No sé si es eso lo que quieres pero será algo parecido.

Saludos.
Página:1

Respuestas relacionadas:

Dvd-rw (combo) cd-rwDvd-rw (combo) cd-rwForo
Combo no lee dvdCombo no lee dvdForo
Problema en excel, no puedo abrir archivos de excelProblema en excel, no puedo abrir archivos de excelForo
Mi combo sony no lee dvdMi combo sony no lee dvdForo
Problema con mi comboProblema con mi comboForo
Cd/dvd combo no  apareceCd/dvd combo no apareceForo
Combo hl-dt-st rw/dvd gcc 4482bCombo hl-dt-st rw/dvd gcc 4482bForo
Problemas con un comboProblemas con un comboForo
Combo sd/mmc/ms/xd no funciona?Combo sd/mmc/ms/xd no funciona?Foro
Dudas con r  combo 3Dudas con r combo 3Foro
InicioSecciones
^ SubirAviso legal
Política Privacidad
Configurarequipos22 Noviembre 2024