Foros del Web » Soporte técnico » Ofimática »

Macro deshacer Filtro

Estas en el tema de Macro deshacer Filtro en el foro de Ofimática en Foros del Web. Hola Colegas, hice un macro con un filtro que funciona correctamente, el problema surge cuando necesito volver atras el filtro para se muestren todos los ...
  #1 (permalink)  
Antiguo 25/03/2007, 19:48
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Macro deshacer Filtro

Hola Colegas, hice un macro con un filtro que funciona correctamente, el problema surge cuando necesito volver atras el filtro para se muestren todos los registros.

Encontre este este codigo:

ActiveSheet.ShowAllData

Que me deshace el Filtro, pero ademas me muestra otras filas ocultas que tengo fuera del rango Filtrado.

Pense en volver a ocultar las filas que quiero ( las que estan lejos del filtro) como parte del macro para que vuelva a estar la hoja como al inicio:

ActiveSheet.ShowAllData
Rows("7:8").Select
Selection.EntireRow.Hidden = True

Pero no se si hay algun codigo que me permita volver atraz lo que se filtro, sin variantes. (pregunto esto por que son 2 mil registros, y para filtrar y desfiltrar demora una eternidad. Gracias!

PD: El Rango de Filtrado comienza desde la fila 12 en adelante (2000 reg aprox)
__________________
-- Nunca te des por vencido, aún vencido -- Web

Última edición por Pablus00; 26/03/2007 a las 12:26
  #2 (permalink)  
Antiguo 26/03/2007, 00:47
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Macro deshacer Filtro

Me gustaría ayudarte pero no está muy clara tu descripción pues digo:

a) por un lado afirmas que "ShowAllData" muestra otras columnas ocultas. Pero por otro afirmas que deseas que permanezcan ocultas las filas "7" y "8" (Rows("7:8").Hidden = True). Entonces tu problema de "ocultamiento" es: ¿con la filas o las columnas?.

b) Tienes 2000 registros (uno puede suponer que están desde la fila 1 a la fila 2000, por ejemplo) y afirmas que "ShowAllData" muestra otras columnas ocultas que tengo fuera del rango Filtrado. Luego pones como ejemplo ocultar las filas "7" y "8". Entonces: ¿ "7" y "8" pertenecen o no al rango de filtrado ? (pues pertenecen a las filas "1" a "2000").

Sería bueno que aclararas estas cuestiones. Saludos.

Cita:
Iniciado por Pablus00 Ver Mensaje
... ActiveSheet.ShowAllData

Que me deshace el Filtro, pero ademas me muestra otras columnas ocultas que tengo fuera del rango Filtrado.

Pense en volver a ocultar las columnas que quiero como parte del macro para que vuelva a estar la hoja como al inicio:

ActiveSheet.ShowAllData
Rows("7:8").Select
Selection.EntireRow.Hidden = True
  #3 (permalink)  
Antiguo 26/03/2007, 12:28
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Re: Macro deshacer Filtro

gracias mrocf por la aclaracion, en el apuro, quedo redactado confuso. Espero que ahora se entienda
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #4 (permalink)  
Antiguo 26/03/2007, 18:02
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Re: Macro deshacer Filtro

No he podido reproducir tu problema por lo que imagino que debe haber "algo más" que lo que has descripto...
Por otro lado no has comentado cual de los dos filtros estás utilizando (filtro avanzado ó autofiltro).

En cualquier caso, te sugiero que intentes el método:
Código:
[A12:E12].AutoFilter
Como este método muestra u oculta (alternativamente) las flechas desplegables de Autofiltro (ubicándolas en el rango: [A12:E12]), verás que -al mismo tiempo- muestra TODAS las filas de un rango previamente filtrado.

Realmente, deberías utilizar el método: ActiveSheet.ShowAllData que hace visibles todas las filas de la lista filtrada actual. Pero como no te funciona, intenta lo antes acotado.

Saludos.
  #5 (permalink)  
Antiguo 26/03/2007, 20:33
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Re: Macro deshacer Filtro

Hola Mrocf, gracias por la respuesta, pero voy a intentar que se entienda mi duda:

Tengo una hoja en donde almaceno mis ventas, siempre agregando con un macro, una fila nueva a partir de la fila 7, es decir son 2000 registros a partir de la fila 7 hacia abajo, en esta fila cada celda tiene, nombre, telefono, importe, etc etc.

Por otro lado tengo arriba de esto, en la fila 5 y 6, otras formulas, y tambien el criterio del filtro, que las tengo ocultas para que no estorben.

Con este codigo ejecuto el filtro, y funciona bien

Range("k7:FINAL").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("k5:k6"), Unique:=False

Pero al momento de querer quitar el filtro y mostrar todos los registros..

ActiveSheet.ShowAllData

me los muestra todos, pero ademas me muestra las filas 5 y 6. No se por que ocurre esto...

yo quiero que las filas 5 y 6 siempre esten ocultas, y la unica manera es que luego de que ejecuto ActiveSheet.ShowAllData las vuelvo a ocultar con

Rows("5:6").Select
Selection.EntireRow.Hidden = True


Esto no deberia pasar, me lleva mucho tiempo y quiero que no ocurra, quisiera que al quitar el filtro, me vuelvan los registros filtrados a la normalidad, sin alterar otras filas de la pagina, hice mi mejor esfuerzo para que se entienda, cualquier cosa avisen, gracias
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #6 (permalink)  
Antiguo 26/03/2007, 23:53
Avatar de mrocf  
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años
Puntos: 88
Re: Macro deshacer Filtro

Confianza: ¡ Le vamos a ganar !...
Sigo creyendo que "algo" está metiendo la"cola"... Prueba esto:

1º) Incorpora al final de mismo Módulo donde tienes la macro que realiza el filtro estas líneas:

Sub Prueba()
[K7:L7].AutoFilter
[K7:L7].AutoFilter
End Sub


2º) Filtra normalmente tu lista (o sea: lo que te funciona).

3º) Ejecuta la macro "Prueba"
Si luego de ejecutarla tienes a las filas 5 y 6 escondidas y a tu lista totalmente visible, entonces tu macro que contiene la sentencia: ActiveSheet.ShowAllData tiene algún "problemita".

De lo contrario, nada puedo aportarte sin ver la hoja. Quedo al aguardo de buenas noticias.

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:15.