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

Preguntas similare

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
Respuesta Responder a este mensaje
#2 Findeo
21/09/2006 - 15:34 | Informe spam
Muchas gracias, Juan M ya que el procedimiento enviado funciona a las mil
maravillas, pese a que yo estaba pensando en otras formas de hacerlo, pero lo
que has enviado, hace lo que yo pretendía (y de eso se trataba).

Un saludo,
FindeO


"Juan M" escribió:

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



Respuesta Responder a este mensaje
#3 Gabriel Raigosa
30/09/2006 - 22:18 | Informe spam
Carpeta
Descripción
Dirección

1
** Microsoft Excel *
http://esnips.com/web/GabrielRaigosa

2
Archivos para usar en clase
http://esnips.com/web/RaigosaClase

3
Fechas y Horas
http://esnips.com/web/RaigosaFechasHoras

4
Formato y Formato Condicional
http://esnips.com/web/RaigosaFormatos

5
Foro Excel
http://esnips.com/web/ForoExcel

6
Funciones de Busqueda
http://esnips.com/web/RaigosaBusqueda

7
Funciones de Texto
http://esnips.com/web/RaigosaTexto

8
Funciones Financieras
http://esnips.com/web/RaigosaFinancieras

9
Funciones Logicas
http://esnips.com/web/RaigosaLogicas

10
Graficos con Excel
http://esnips.com/web/RaigosaGraficos

11
Grupo (Sabados)
Privado

12
Grupo (Viernes)
Privado

13
Grupo Excel Septiembre
Privado

14
Juegos con Excel
http://esnips.com/web/RaigosaJuegosExcel

15
Macros con Excel
http://esnips.com/web/Macros-con-Excel

16
Manuales Excel
http://esnips.com/web/RaigosaManuales

17
Paginas WEB
http://esnips.com/web/RaigosaPaginasExcel

18
Practicas - XLS
http://esnips.com/web/RaigosaPracticasXLS

19
Tablas Dinámicas
http://esnips.com/web/RaigosaTablasDinamicas

20
TEST
http://esnips.com/web/GabrielRaigosa-test

21
Validación
http://esnips.com/web/RaigosaValidacion

22
Varios
http://esnips.com/web/RaigosaVarios

23
VBA - Visual Basic para Aplicaciones
http://esnips.com/web/RaigosaVBA















Gabriel Raigosa
http://esnips.com/web/Raigosa
http://esnips.com/web/ForoExcel
"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
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida