Ventana De Busqueda Con Datos Filtrados

Acudo a ustedes por lo siguiente, tengo un formulario, que carga toda la data de mis tablas a un listbox dejo una imagen

Lo que quiero es que al seleccionar una columna en el combobox, busque mi texto en esa columna por medio del filtrado. Mi problema es que cuando lo busco por el formulario no aparecen, y cuando lo busco por el filtrado normal en la hoja todo marcha normal


        
Respuesta
3

Yo he hecho cosas de filtrado pero en las celdas no en un formulario, las columnas del formulario que control activeX es.

A no ser que quieras filtrar las celdas y luego cargues los datos en el formulario otra vez.

Que quieres hacer

Hola Filtrar las celdas y los resultados encontrados cargarlos al formulario, las columnas del formulario son los datos que están en la hoja, cargados a un listbox

sub filtrar_datos()
    'La instruccion es esta
    'Worksheets(nombre de la hoja).range("A1").Autofilter field:=Numero de columna, Criteria1:( Lo que hay dentro del select case)
    'Worksheets("Hoja1").Range("A1").AutoFilter Field:=4, Criteria1:="aa"
    dim filtro as string
    dim columna as integer
    filtro=txtTextoFiltro.text '<==========================nombre del textbox donde pones los datos a filtrar, he puesto uno al azar
    'Si la 1a columna corresponde al 1er elemento del combo, mucho mejor
    'Si vas a poner columnas sueltas, te aconsejo que hagas dos variables
    'La 1a con el nombre de la columna y la 2a el orden de la columna, si es la 1a, la 2a, etc
    columna=me.combo.listindex '<=============================== Has de cambiar esto por el nombre que has puesto en el combo
    ' Miramos que haya contenido en el textbox
    if(len(filtro)>0) then
' Son todos los tipos de filtros que puede haber
'            Select Case (me.combo.listindex)
'                Case 1:
'                    filtro= "=" + filtro    'es igual a
'                Case 2
'                    filtro= "<>" + filtro   'no es igual
'                Case 3
'                    filtro= ">" + filtro    'es mayor que
'                Case 4
'                    filtro= ">=" + filtro   'mayor igual
'                Case 5
'                    filtro= "<" + filtro    'menor
'                Case 6
'                    filtro= "<=" + filtro   'menor igual
'                Case 7
'                    filtro= filtro+ "*"     'empieza por
'                Case 8
'                    filtro= "*" + filtro+ "*" 'contiene
'            End Select         
         filtro="*"+filtro+"*"
         range("A1").currentregion.autofilter field:=columna, criteria1:=filtro
         ' Se puede filtrar varias veces
        ' Deberías poner un botón que quite los filtros y poner esto en él
         'If ActiveSheet.FilterMode Then
         '    ActiveSheet.ShowAllData
         '    ActiveSheet.AutoFilterMode = False
         'End If
    end if    
end sub

Hola, gracuias por la respuesta, pero tengo un detalle, dice error y pone

Error en el metodo autofilter de la clase range

exactamente en esta linea

range("A1").currentregion.autofilter field:=columna, criteria1:=filtro

Cambiaste

 filtro=txtTextoFiltro.text y

columna=me.combo.listindex

por el nombre de textbox y la lista?

worksheet("Hoja1"). <====Te falta poner esto, cambia el hoja 1 por el nombre de la hoja donde estan tus datos, ponlo delante de esto range("A1").currentregion.autofilter field:=columna, criteria1:=filtro

Hola, si cambien todo efectivamente como dijiste al principio. Agregue esa línea que comentas y dice

No se ha definido sub o function

Agrega un módulo y ponla ahí, a ver si con eso ya vale

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas