** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Filtrar Tabla Dinámica con VBA
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoFiltrar Tabla Dinámica con VBA

 Responder Responder
Autor
Mensaje
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 124
Enlace directo a este mensaje Tema: Filtrar Tabla Dinámica con VBA
    Enviado: 10/Enero/2018 a las 15:43

Hola, nuevamente una consulta

Tengo una lista de alumnos que debe venir a revisar su proyecto, según un calendario determinado.

He construido una tabla dinámica para filtrar los alumnos de acuerdo a la semana que se les asigne-

Deseo construir una macro, para que filtre los resultados de la tabla dinámica, por semana, tomando el número de la semana de las celdas de la hoja.

A continuación una imagen con lo que deseo hacer:

EJEMPLO 1

Semana

Alumno

Semana

Alumno

2

 

Semana

Alumno

5

Cecilia

1

Ayelen

3

2

Javier

1

Catalina

Belen

 

Paula

1

Maria

Catalina

 

Valeria

6

Marisa

Maria

 

3

Emiliano

5

Rafael

Martina

 

Marina

2

Paula

Alfonso

 

Tomas

2

Valeria

2

Javier

 

 

 

Beatriz

3

Emiliano

Paula

3

Marina

Valeria

3

Tomas

Maritza

EJEMPLO 2

1

Belen

3

Emiliano

1

 

Semana

Alumno

1

Martina

Marina

3

1

Ayelen

4

Anabella

Tomas

6

Belen

4

Rocio

Beatriz

 

Catalina

Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 124
Enlace directo a este mensaje Enviado: 10/Enero/2018 a las 15:52
No se que ocurrió pero no se publicó el texto completo. 
La tabla comprende lista de persona, hasta la semana número 6-
En el Ejemplo 1, hice un filtro con las semas 2 y 3, el Ejemplo 2 con las semanas 1,3 y 6

Quisiera que me ayuden en construir la instrucción para la macro, que actualice la tabla y filtre la columna Semana, cada vez que ingrese un número en una celda.

 

Gracias

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5117
Enlace directo a este mensaje Enviado: 11/Enero/2018 a las 14:45

¿Una macro para filtrar en la TD?


La TD ya lo tiene todo...



... y te permite los filtros que quieras de modo dinámico/rápido/simple.  Confused  Ouch



Eitado: Algo hiciste que se deformó el hilo.



Editado por AnSanVal - 11/Enero/2018 a las 14:59
Aprendemos viendo respuestas de otros. Aprendemos más intentando resolver dudas (pregunta/responde).

Mi sitio_web con ejemplos Excel.
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 124
Enlace directo a este mensaje Enviado: 11/Enero/2018 a las 18:22
Hola AnSanVal, gracias por el tiempo invertido en la respuesta.

Tal vez no me haya sabido explicar bien.

Adicionalmente, no he podido cargar una imagen, como la que tu incluyes y he recurrido a Word para ilustrar mi pregunta, sin embargo, además de lo laborioso, no queda igual

 

Debo hacer notar que la persona que va a manejar la hoja no es experta en el manejo de Excel, por lo que deseo reducir las posibilidades de error.

Tengo una tabla como la que sigue

ENERO

1/ENERO/2018

01-01-2018

 

 

 

SEMANA 1

Fecha de inicio:

01-01-2018

Fecha de cierre:

07-01-2018

SEMANA 2

Fecha de inicio:

08-01-2018

Fecha de cierre:

14-01-2018

SEMANA 3

Fecha de inicio:

15-01-2018

Fecha de cierre:

21-01-2018

SEMANA 4

Fecha de inicio:

22-01-2018

Fecha de cierre:

28-01-2018

SEMANA 5

Fecha de inicio:

29-01-2018

Fecha de cierre:

04-02-2018

La persona va a ingresar solamente el nombre del mes, en la parte superior de la tabla y mi objetivo es que la tabla dinámica se actualice, luego de ingresar el nombre del mes, mostrando los alumnos que deben asistir en cada semana.

Es por ello que deseo incluir una instrucción que realice tal actualización.

 

Agradecido por cualquier ayuda

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5117
Enlace directo a este mensaje Enviado: 13/Enero/2018 a las 01:16

Para incluir la imagen, primero la subo a un sitio de almacenamiento (yo la pongo en mi página) y luego indico la dirección de descarga, pero no necesitas Word, simplemente; selecciona el rango de celdas, copia y pega en el foro (no es lo mismo, pero vale), por ejemplo así:


Fecha de inicio Fecha de cierre Nombre Etiquetas de fila Cuenta
lu, 01/01/2018 do, 07/01/2018 Pedro 15/01/2018 - 21/01/2018 3
lu, 15/01/2018 do, 21/01/2018 Jorge Ana 1
lu, 08/01/2018 do, 14/01/2018 Isabel Arturo 1
lu, 22/01/2018 do, 28/01/2018 Lola Jorge 1
lu, 15/01/2018 do, 21/01/2018 Arturo 22/01/2018 - 28/01/2018 2
lu, 01/01/2018 do, 07/01/2018 Aurora Daniel 1
lu, 29/01/2018 do, 04/02/2018 Maura Lola 1
lu, 22/01/2018 do, 28/01/2018 Daniel 29/01/2018 - 30/01/2018 2
lu, 15/01/2018 do, 21/01/2018 Ana Carlos 1
lu, 29/01/2018 do, 04/02/2018 Carlos Maura 1
lu, 15/01/2018 do, 21/01/2018 María Total general 7


Dices que:  «... la persona que va a manejar la hoja no es experta en el manejo de Excel...»


¿Va a ser más fácil  escribir en una celda y después pulsar el botón para que se ejecute la macro, que hacer clic en la semana que quiere visualizar y pulsar Aceptar?


Eso me suena a 'No quiero  que la otra persona aprenda', y al menos yo ...  no estoy por la labor.



Aprendemos viendo respuestas de otros. Aprendemos más intentando resolver dudas (pregunta/responde).

Mi sitio_web con ejemplos Excel.
Arriba
Gladiador Ver desplegable
Habitual
Habitual
Avatar

Unido: 22/Junio/2006
Localización: Venezuela
Estado: Sin conexión
Puntos: 124
Enlace directo a este mensaje Enviado: 15/Enero/2018 a las 03:30

Hola AnSanVal.

Gracias por tu ayuda y el tiempo invertido en mi consulta.

En realidad mi misión es la de simplificar y aligerar las actividades de las personas; por lo tanto trato de facilitar las labores, sobre todo para aquellas personas que ejecutan las funciones de manera rápida (automáticamente). En este caso, para cualquier persona, buscar en la lista desplegable, el número de la semana cuando estemos más allá de mediados de año, en donde tendremos, al menos, más de 20 números para escoger, le resultará tedioso y las posibilidades de error aumentarán.

Afortunadamente, buscando aquí y allá, logré ensamblar una macro que ejecuta lo que deseo.

Para aquellos que puedan estar interesados en la solución que encontré, la macro es la siguiente:

Dim n, i

n = Range("J5") ‘contiene el número de la semana en la cual se inicia el mes

i = Range("J6")  ‘contiene el número de la semana en la cual finaliza el  mes

Dim ItemSem  As PivotItem

    ActiveSheet.PivotTables("PivotTable1").PivotFields("Semana").ClearAllFilters

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Semana")

        For Each ItemSem In .PivotItems

            If ItemSem < n Then

ItemSem.Visible = False

            ElseIf ItemSem > i Then

ItemSem.Visible = False

    Else

   End If

         Next

    End With

 

La siguiente macro también me funcionó

 

Dim n, m

n = Range("J5")

m = Range("J6")

 

    ActiveSheet.PivotTables("PivotTable1").PivotFields("Semana").ClearAllFilters

 

    With ActiveSheet.PivotTables("PivotTable1").PivotFields("Semana")

        For i = 1 To .PivotItems.Count

            If i >= n And i <= m Then

                .PivotItems(i).Visible = True

            Else

                .PivotItems(i).Visible = False

            End If

        Next i

    End With

Gracias a todos en el foro, se puede cerrar el hilo

Gladiador

Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5117
Enlace directo a este mensaje Enviado: 15/Enero/2018 a las 19:58

«... En realidad mi misión es la de simplificar y ... por lo tanto trato de facilitar las labores...»


No lo he dudado ni un momento, pero eso no implica que la decisión que tomes (aunque sea con la mejor voluntad) sea la más sencilla/rápida/eficiente.


Se suele decir cada maestrillo tiene su librillo,  en base a ello:  yo descartaría incluso la Tabla dinámica y me quedaría solo con la tabla original y sus filtros, con lo que puedo extraer en un informe; cuantos/cuales alumnos están en la semana 4, o en cuantos cursos/semanas está Ana Padilla, o en que semana se inscribió Pedro Alonso, etc.


Pero lo dicho: que yo opine que un método es mas sencillo/rápido/eficiente, NO implica que yo deba tener razón, y como la última palabra debe ser la tuya (que se supone cobras por ello)... adelante y sin problemas (faltaría más).



Aprendemos viendo respuestas de otros. Aprendemos más intentando resolver dudas (pregunta/responde).

Mi sitio_web con ejemplos Excel.
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable