VBA: Sleccionar filas por condición

21/09/2006 - 12:11 por Findeo | Informe spam
Buenos días,

en VBA trato de ocultar una seria de filas de un rango en función de que el
valor de la celda de la primera columna sea 2.

Ahora lo estoy haciendo mediante un bucle que recorre todas celdas de la
primera columna del rango y, si el valor es 2 la oculto. Sin embargo, como el
rango está creciendo bastante desearía poder hacerlo con un instrucción del
tipo

Selection.SpecialCells("columna A = 2").Select

o de alguna otra forma, de tal modo que seleccionase todas las celdas del
rango que cumplen la condición deseada con una sola instrucción (o alguna
más, pero evitando el bucle), y a continuación ocultar todo las filas
seleccionadas (con Selection.EntireRow.Hidden = True).

No se me ocurre cómo hacerlo, así que si alguien tiene alguna sugerencia,
estaría muy agradecido.

Gracias por anticipado,
FindeO
 

Leer las respuestas

#1 Juan M
21/09/2006 - 12:49 | Informe spam
Hola Findeo

en VBA trato de ocultar una seria de filas de un rango en función de que
el
valor de la celda de la primera columna sea 2.



Has probado con los autofiltros? te paso un ejemplillo en el que he empleado
el rango A1:C10

Un saludo
Juan

Inicio codigo
Sub test()
Range("A1:C10").AutoFilter field:=1, Criteria1:=2
Range("A2:C10").SpecialCells(xlCellTypeVisible).Select
Range("A1:C1").AutoFilter
Selection.EntireRow.Hidden = True
End Sub
Fin codigo


"Findeo" escribió en el mensaje
news:
Buenos días,

en VBA trato de ocultar una seria de filas de un rango en función de que
el
valor de la celda de la primera columna sea 2.

Ahora lo estoy haciendo mediante un bucle que recorre todas celdas de la
primera columna del rango y, si el valor es 2 la oculto. Sin embargo, como
el
rango está creciendo bastante desearía poder hacerlo con un instrucción
del
tipo

Selection.SpecialCells("columna A = 2").Select

o de alguna otra forma, de tal modo que seleccionase todas las celdas del
rango que cumplen la condición deseada con una sola instrucción (o alguna
más, pero evitando el bucle), y a continuación ocultar todo las filas
seleccionadas (con Selection.EntireRow.Hidden = True).

No se me ocurre cómo hacerlo, así que si alguien tiene alguna sugerencia,
estaría muy agradecido.

Gracias por anticipado,
FindeO

Preguntas similares