Seleccionar filas por medio de un valor, agregado en una textbox

Tengo una columna "A" con 3 valores concatenados en cada celda (por otra macro ya están como valor y no como formula).

Lo que necesito hacer es por medio de un textbox e introducir los 3 valores me seleccione todas las filas donde se encuentren estos valores.

Los valores que se incorporan en el textbox son "identificación", "Mes" y año".

Por ejemplo

-Textbox1: CDR3000

-Textbox2: marzo

-Textbox3: 2017

Y que al agregar y rellenar esos valores y darle okay al botón, me seleccione de manera inmediata en la columna "A", todas las filas donde están esos valores.

Private Sub BUSCAR_BTN_Click()

Set h2 = Sheets("Hoja2")

Set bs = h2.Columns("A")
Set T1 = TextBox1
Set T2 = TextBox2
Set T3 = TextBox3
Dato = T1 & T2 & T3

bs.Find(what:=Dato, After:=ActiveCell, LookAt:=xlWhole).Select

Selection.EntireRow.Select

End Sub

Hasta ahora solo he logrado que seleccione una fila y al volver a apretar el botón buscar vuelve a seleccionar la siguiente fila pero necesito que las seleccione todas al mismo tiempo.

Espero me puedan ayudar y ojala de la manera mas didáctica posible, para entender también lo que estoy haciendo ya que no salgo de los "set, if, else, elseif, msgbox" y no mucho mas que eso...

1 respuesta

Respuesta
1

Te anexo la macro actualizada.

Te puse comentarios en las líneas de la macro para explicar lo que hacen.

Private Sub BUSCAR_BTN_Click()
'Por Dante Amor
    Set h = Sheets("Hoja2")                         'establece en h la hoja
    Set r = h.Columns("A")                          'establece en r el rango de búsqueda
    dato = TextBox1.Value & TextBox2.Value & TextBox3.Value
    Set b = r.Find(dato, LookAt:=xlPart)            'Establece en b el resultado de la búsqueda
    If Not b Is Nothing Then
        celda = b.Address                           'alamcena el primer resultado de la búsqueda
        Set a = Range("A" & b.Row)                  'establece en a las celda encontrada
        Do
            Set a = Union(a, Range("A" & b.Row))    'acumula en el a las filas encontradas
            Set b = r.FindNext(b)                   'realiza la siguiente búsqueda
        Loop While Not b Is Nothing And b.Address <> celda
        a.EntireRow.Select                          'selecciona todas las filas encontradas
    End If
End Sub

Podrías No hacer preguntas como anónimo, puedes utilizar un seudónimo. [Gracias]


Mil gracias , hice todo publico pero no se porque se oculto, de todas maneras gracias por responder era lo que necesitaba ;) saludos

entendí todo esta muy claro pero me podrías explicar para que sirve

" If Not b Is Nothing Then"

gracias y saludos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas