UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Filtrar al momento de escribir el 21/06/14, 01:58 am

raptor


Hola expertos de universoexcelforo.com, sólo quiero pedirles un poco de ayuda en la siguiente cuestión.

Tengo un filtro se podría decir semiautomático en un rango de celdas, al momento de escribir y dar "enter", filtra. Lo que yo quisiera saber es ¿cómo indicarle que me vaya filtrando al momento de ir escribiendo en la celdas?, intente un método insertando textboxs en la hoja y asignándole un rango de búsqueda y un rango para buscar y en el evento workshhets de la hoja use la instrucción .AdvancedFilter xlFilterInPlace, con lo cual si me filtra como deseo pero lo hace muy lento a comparación del código que manejo en el ejemplo.



Dejo el ejemplo que como tenía el código:


Private Sub filtrar()
    [Db].AdvancedFilter xlFilterInPlace, [CRIT]

'Db era la base de datos
'CRIT era el rango para introducir los valores y buscar

End Sub


Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    [b2].Value = TextBox1.Text & IIf(TextBox1.Text = "", "", "*")
    filtrar
End Sub


Private Sub TextBox2_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    [c2].Value = TextBox2.Text & IIf(TextBox2.Text = "", "", "*")
    filtrar
End Sub


Private Sub TextBox3_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    [d2].Value = TextBox3.Text & IIf(TextBox3.Text = "", "", "*")
    filtrar
End Sub


Private Sub TextBox4_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

    [e2] = TextBox4.Text
    
    filtrar

End Sub



Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Address <> "$F$2" Then Exit Sub

'f2 era una validación de datos para filtrar por diversos caracteres, ejemplo:  "=","<",">","<>",     "<=",">="
    
    TextBox4.Text = [F2]

End Sub


Agradecería sus recomendaciones. Saludos Smile


P.D. Puesto que sospecho de algún error en la pagina o en mi pc que no me permite subir el archivo, dejo el link donde el ejemplo se encuetra alojado.

https://drive.google.com/?usp=folder&authuser=0&usp=folder&urp=http://www.google.com.mx/accounts/Logout2?hl%3Des_41#folders/0B0gEpbsiwa4XV3VsMjhDTGVWTG8

tyno


Hola raptor.
En un textbox inserta y prueba este código:

On Error Resume Next
If TextBox1 <> "" Then
Application.ScreenUpdating = False
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Columns("F:F") = ""
[f8] = "filtro"
i = 8
nxt: rw = Range(Cells(i, 2), Cells(1000000, 2)).Find(TextBox1, lookat:=2).Row
If rw = i Then
Range("a8:f" & Range("a1000000").End(xlUp).Row).AutoFilter Field:=6, Criteria1:="x"
Columns("F:F") = ""
Exit Sub
End If
Cells(rw, 6) = "x"
i = rw
GoTo nxt
Else
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Columns("F:F") = ""
Application.ScreenUpdating = True
End If


En este caso yo utilizo un textbox llamado TextBox1, cambia el nombre por el que tú estés utilizando. La búsqueda es por color (Columna B Hoja SALDO)

 Saludos

raptor


Hola tyno, gracias por responder, el código que me mandas hace lo que requiero, pero , ¿tendría que introducir este mismo código a cada uno de los textboxs cambiando los criterios para buscar en cada una de las columnas?.

Porque lo que necesito es buscar en cada una de ellas, es decir sino busco por (ColumnaB), lo hago por (ColumnaC) y así sucesivamente. Como lo tengo en el ejemplo adjunto, en ese ejemplo se filtran los registros idoneamente pero no tiene la capacidad de hacerlo mientras se esta escribiendo.

tyno


Hola raptor.
Prueba el archivo. Agregue un cuadro combinado donde seleccionas la columna que quieres filtrar. Saludos

https://www.dropbox.com/s/gitkq4cogf4s2d7/filtro.zip

raptor


Hola tyno, wow déjame decirte que esta super genial tu archivo, solo me podrías indicar como buscar por criterios como "<", ">", "<=",">=", cuando estoy en opción saldo.

tyno


Hola raptor.
Me he puesto a ver como hacer algo para buscar por criterios como >= y >=, por ejemplo, pero veo que desarrollar una macro para ese fin no proporciona ninguna ventaja significativa con respecto al uso del "Filtro de números/Filtro personalizado..." que brinda la propia función de Filtro de Excel. Es decir si o si hay que establecer en algún lado los criterios (>=,<=,>,<,<>,=) ya sea en un control o una celda y luego tener, quizás, dos textbox para ingresar los valores de referencia, o sea hay que hacer exactamente lo que ya se hace con la opción de "Filtro de números".


Saludos

raptor


Hola tyno, bueno entonces lo dejaremos así, la verdad muchas gracias por tu tiempo y paciencia.

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.