Hacer búsqueda y filtrar sin botón para luego su selección

Tengo este código.

Private Sub Worksheet_Change(ByVal Target As Range)    'desactivamos la actualizacion de la pantalla, es decir ocultamos lo que la macro hace    Application.ScreenUpdating = False    'si existe algun error de uso lo ignora o salta al siguiente error    On Error Resume Next    'BD dinamica lista para efectuar el filtro avanzado en el mismo lugar, desde B1 hasta D2    Range("B4:INDEX(E:E,COUNTA(B:B)+2,)").AdvancedFilter 1, _    Range("B1").CurrentRegion    'autoajusta toda fila usada    Cells.Rows.AutoFit    'autoajusta toda columna usada    Cells.Columns.AutoFit    'activamos la actualización de la pantalla    Application.ScreenUpdating = TrueEnd Sub

el cual al poner la primera palabra de una oracion me busca y filtra entre tantos..ejemplo:

Escribo: camisa y me busca y filtra camisas sean de color o de marca etc

Pero yo necesito que funcione así:

Escribo: roja y que me salga y filtre todas las oraciones que contengan ROJA seas camisas o pantalones...

2 respuestas

Respuesta
1

Te regreso la maco con los cambios, para que pongas la palabra roja en la celda B2, avísame si pones otras palabras en otras celdas.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address(False, False) = "B2" Then
        Application.EnableEvents = False
        Target.Value = "*" & Target.Value & "*"
        Application.EnableEvents = True
        'desactivamos la actualizacion de la pantalla, es decir ocultamos lo que la macro hace
        Application.ScreenUpdating = False
        'si existe algun error de uso lo ignora o salta al siguiente error
        On Error Resume Next
        'BD dinamica lista para efectuar el filtro avanzado en el mismo lugar, desde B1 hasta D2
        Range("B4:INDEX(E:E,COUNTA(B:B)+2,)").AdvancedFilter 1, _
        Range("B1"). CurrentRegion
        'autoajusta toda fila usada
        Cells. Rows. AutoFit
        'autoajusta toda columna usada
        Cells. Columns. AutoFit
        'activamos la actualización de la pantalla
        Application.ScreenUpdating = True
    End If
End Sub
Respuesta
1

Si en el rango de criterios del filtro avanzado escribes "*rojo", con asterisco al inicio, te filtrará todo lo que contenga el texto "rojo", si escribes "rojo" sin asterisco te filtrará sólo lo que empiece por "rojo".

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas