Duda para seleccionar de forma automática toda la fila que contenga un valor de una celda

¿Es posible buscar un valor determinado de una celda y seleccionar automáticamente todas las filas que contengan ese valor? Me explico mejor, teniendo una hoja de cálculo con datos de personas por ejemplo, y ordenadas debidamente por el criterio que queremos seleccionar (en este caso por apellido primero), ¿hacer qué automáticamente se busque en la columna del primer apellido por ejemplo el apellido? ¿Gómez? ¿Y se seleccione automáticamente todas las filas correlativas que contengan el apellido? ¿Gómez?.
Respuesta
-1
La macro desarrollada busca en una hoja y columna específica el valor que coincida completamente con el criterio de entrada y selecciona las filas que correspondan.
La búsqueda se desarrolla de forma descendente hasta que se encuentra una celda vacía
Los argumentos xSheet y xCol son el nombre de la hoja y el número de la columna respectivamente donde se realizará la búsqueda.
El argumento Row_i es la Fila inicial donde comenzará la búsqueda y xCrit es el criterio de búsqueda.
Sub SelectRows(xSheet As String, xCol As Double, Row_i As Double, xCrit As String)
With Sheets(xSheet).Columns(xCol)
xRow = Row_i - 1
Do
xRow = xRow + 1
If .Rows(xRow).Value = xCrit Then
Idx = Idx + 1
If Idx = 1 Then
Set xGrup = Sheets(xSheet).Rows(xRow)
Else
Set xGrup = Union(xGrup, Sheets(xSheet).Rows(xRow))
End If
End If
Loop Until .Rows(xRow).Value = ""
xGrup.Select
End With
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas