Ocultar filas que no cumplan una condición

06/02/2009 - 19:54 por Manuel Montes | Informe spam
Buenos días a todos/as:

Tengo una hoja con unas 100 filas en las que la columna B tiene un NO
o un SI. Lo único que quiero es que me oculte (no filtre, sino oculte)
todo aquello que tiene NO.

La estructura es tal que

REFERENCIA | IMPRIMIR | DESCRIPCION | IMPORTE

TJS | SI | Tarjetas plásticas
| 500
COM | NO | Comisión intermediario | 100
AUX | SI | Material
Auxiliar | 150

Yo me he planteado un bucle tal que:


Do While ActiveCell.Value <> Empty
If ActiveCell.Value = "NO" Then
Selection.EntireRow.Hidden = True
End If
ActiveCell.Offset(1, 0).Select
Loop

El problema es que para 50 líneas, no se por qué razón, me tarda más
de un minuto, y necesito que sea un proceso más rápido.

Alguien me podría ayudar como hacer la selección múltiple de filas de
forma múltiple.

Preguntas similare

Leer las respuestas

#11 Héctor Miguel
09/02/2009 - 00:04 | Informe spam
hola, !

... como puedo ampliar la seleccion a dos columnas a la izquierda de cada una de las filas que pone SI
yo he intentando con ocultar.resize(0,3).select
pero no ha funcionado



(primero) no me cuadra que un .resize(, 3) corresponda a 3 columnas "a la izquierda de un SI"
sobre todo si la columna con el "SI" es la columna B y el codigo usa la columna A (para ocultar TODA la fila) -???-

(segundo) debes incluir cualquier .offset y/o .resize EN la instruccion Set para establecer la referencia (p.e.)
si suponemos que las 3 columnas son a partir de la columna A... cambia la propuesta:

de: Set Rango = Union(IIf(Rango Is Nothing, Range("a" & Fila), Rango), Range("a" & Fila))
a: Set Rango = Union(IIf(Rango Is Nothing, Range("a" & Fila).Resize(, 3), Rango), Range("a" & Fila).Resize(, 3))

saludos,
hector.
Respuesta Responder a este mensaje
#12 Anonimo
09/02/2009 - 00:28 | Informe spam
Efectivamente, gracias, y seguimos aprendiendo con tu ayuda


"Héctor Miguel" escribió en el mensaje de
noticias news:
hola, !

... como puedo ampliar la seleccion a dos columnas a la izquierda de cada
una de las filas que pone SI
yo he intentando con ocultar.resize(0,3).select
pero no ha funcionado



(primero) no me cuadra que un .resize(, 3) corresponda a 3 columnas "a la
izquierda de un SI"
sobre todo si la columna con el "SI" es la columna B y el codigo usa la
columna A (para ocultar TODA la fila) -???-

(segundo) debes incluir cualquier .offset y/o .resize EN la instruccion
Set para establecer la referencia (p.e.)
si suponemos que las 3 columnas son a partir de la columna A... cambia la
propuesta:

de: Set Rango = Union(IIf(Rango Is Nothing, Range("a" & Fila), Rango),
Range("a" & Fila))
a: Set Rango = Union(IIf(Rango Is Nothing, Range("a" & Fila).Resize(, 3),
Rango), Range("a" & Fila).Resize(, 3))

saludos,
hector.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida