viernes, 11 de marzo de 2022

Cuadrante de Servicio Parte 8.- Segmentadores

 Vamos a continuar, esta vez con los segmentadores, que estos objetos lo que hacen es filtrar las tablas dinámicas, como los objetos que se encuentren relacionados con dichas tablas, por ejemplo los gráficos que dependen de ella.

Nos situamos dentro de la tabla dinámica y posteriormente nos vamos al menu de analizar tabla dinámica, dentro existe el Insertar Segmentación de datos y pinchamos en él, y nos mostrará


Ahora vamos a elegir los segmentadores de tipo Activo, Mes, año, nombreDía, tipoDía.

Posteriormente le daremos el diseño que nos guste, o podemos crear uno nuevo. También le daremos el tamaño oportuno y que nos ocupe las columnas que elijamos. Si pinchamos en cada segmentador, y con el botón derecho del ratón, elegimos Configuración de la segmentación de datos, en la parte de abajo suelo poner el click a Ocultar los elementos que no contienen datos. El mes he elegido en cuatro columnas, nombreDía en 3 columnas y año en 3 columnas.



Mi diseño me ha quedado de esta forma y tamaño, que posteriormente lo modificaremos para adecuarlo a la barra donde lo introduciremos.



Ahora habrá que darle una altura a la fila A de la hoja donde vamos a poner los segmentadores, que será la hoja del dashboard, en mi caso y hecho las pruebas pertinentes tiene una altura de 128,25.

La altura a la fila se le da, pulsando en la fila y con el botón derecho del ratón Altura de la Fila, y ahí escribimos nuestra altura.

A continuación insertamos un cuadro con los bordes redondeados y le he dado un color verde claro.

Luego, volvemos a insertar otro cuadro, bastante más pequeño y le ponemos el texto de Filtros, quedándonos así:


Y ahora los segmentadores los vamos a poner en dicho cuadro, con copiar o cortar y posteriormente con pegar, de la hoja que los creamos.

Una vez puesto los he alineado a la parte de arriba y distribuido horizontalmente, quedándonos de esta forma.


A continuación le daremos nombre a todos los segmentadores y a los cuadros creado, y procederemos agruparlos. Le he dado el nombre de Grupo_Filtros.

Ahora lo siguiente es crear una macro para que nos lo oculte y nos lo muestre, simplemente pulsando un botón, en este caso nuestro botón filtro, que lo tengo nombrado como Filtro

En mi caso me he ido a la pestaña Programador,  luego Visual Basic, y una vez abierta la nueva ventana he creado un nuevo módulo y lo he nombrado como OcultarMostrar.

En este modulo he creado tres macros, dos de ellas son para cambiar el color del botón cuando esté activado el filtro y otra cuando no lo esté.

Sub ColorVerde()

    ActiveSheet.Shapes.Range(Array("Filtro")).Select
    With Selection.ShapeRange.Fill
        .ForeColor.ObjectThemeColor = msoThemeColorAccent6
        .ForeColor.Brightness = -0.5
    End With
    Range("d4").Select
End Sub


Sub ColorBlanco()
    
    ActiveSheet.Shapes.Range(Array("Filtro")).Select
    With Selection.ShapeRange.Fill
        .ForeColor.ObjectThemeColor = msoThemeColorBackground1
        .ForeColor.Brightness = 0.5
    End With
    Range("d4").Select
End Sub

El color verde estará el botón cuando no veamos los segmentadores y blanco cuando los veamos.

Public Sub MostrarOcultarMenuFiltros()
    Dim hoja As String
    hoja = ActiveSheet.Name
    If Sheets(hoja).Shapes("Grupo_Filtros").Visible = False Then
        Sheets(hoja).Shapes("Grupo_Filtros").Visible = True
        Rows("1:1").RowHeight = 128.25
        Call ColorBlanco
    Else
        Sheets(hoja).Shapes("Grupo_Filtros").Visible = False
        Rows("1:1").RowHeight = 7.5
        Call ColorVerde
    End If
    
End Sub

Esta última macro, si nos damos cuenta en parte del código llama a la macro ColorBlanco y en otra parte Colorverde.

Si observamos la macro, se hace referencia al Grupo_Filtros, que además de mostrarlo y ocultarlo, cambia el tamaño de la fila "A".

Y esta última es la que hay que asignarsela al botón llamado Filtro.


No hay comentarios:

Publicar un comentario

Gracias por participar en esta página.