Saludos amig@ de EFB
Queremos compartir con ustedes, una de las Macros más útiles de nuestro libro Tablas Dinámicas, la Quinta Dimensión, hablamos de la Macro 04 – Restringir acciones en una Tabla Dinámica, así que sin más preámbulos…
Macro – Restringir acciones en una Tabla Dinámica
Creamos reportes de tablas dinámicas no solamente para nuestro uso personal: Análisis datos, generar conclusiones y tomar decisiones, sino que también las compartimos con terceros; puede ser con un cliente, un compañero de trabajo, gerentes de distintas divisiones y cualquier otro grupo de personas, no obstante, a pesar de que muchos de los reportes son para compartir, en algunos casos es conveniente restringir el tipo de acciones que puede realizar un tercero.
Esta Macro abarca distintas propiedades en detalle, con las cuales podemos añadir restricciones o limitaciones a nuestras tablas dinámicas dependiendo de la necesidad específica, a diferencia del Tip 03: Proteger una Tabla dinámica, cuyo caso no permite realizar ningún tipo de acción, sino solo lectura final.
Propiedades de PivotTable para añadir Restricciones
El objeto PivotTable (Tabla Dinámica) en Visual Basic para Aplicaciones (VBA), cuenta con diversas propiedades que nos permiten limitar ciertas características y/o componentes de los reportes de tabla dinámica, estas son:
- expression.EnableWizard
- expression.EnableDrilldown
- expression.EnableFieldList
- expression.EnableFieldDialog
- expression.PivotCahes.EnableRefresh
- expression.EnableDataValueEditing
- expression.DisplayContextTootips
expression: una variable Objeto que represente una tabla dinámica
EnableWizard
Esta propiedad de tipo Booleano (True o False) cuando se configura como False deshabilita las pestañas ANALIZAR y DISEÑO que se muestran cuando se posiciona la celda activa dentro del reporte. Véase la siguiente Ilustración
Cuando la propiedad EnableWizad se ajusta a Falso este deshabilita algunas opciones del menú contextual que se muestran cuando se pulsa clic derecho dentro del reporte, estas opciones son:
- Mostrar Lista de Campos
- Opciones de Tabla Dinámica
- Configuración de Campos de Valor
El resto de opciones si se pueden utilizar, por lo que se puede ordenar, filtrar y utilizar distintos tipos de visualización de valores y actualizar.
Opciones que no se pueden utilizar cuando se configura la Propiedad EnableWizard de la tabla dinámica a False:
- Configuración de campo de valor
- Opciones de Tabla Dinámica
- Mostrar Listas de Campo
Sin embargo se puede:
- Ordenar
- Filtrar
- Cambiar Función
- Cambiar tipo de visualización de valores
- Mostrar Detalles
Nota: Independiente si la Propiedad EnableWizard este configurada como False o True, esta permite mostrar detalles en los datos.
expression.EnableWizard = False
EnableDrilldown
Cuando la propiedad EnableDrilldown se ajusta a False evita que el usuario obtenga detalles en los datos cuando pulsa clic en cualquier celda del área de valores como lo indica el Tip 07. Es importante resaltar que para OLAP esta propiedad siempre está configurada como True.
expression.EnableWizard = False
EnableFieldList
Esta propiedad de tipo Booleano (True o False) cuando se configura como False evita que el usuario pueda activar el panel de listas de campo (Deshabilita el comando en la pestaña y en el menú contextual cuando se pulsa clic derecho encima del reporte). Si el panel de campos estaba visible antes de ejecutar esta propiedad, entonces desaparece, por consiguiente, previene que se mueva un campo de un área de colocación a otra.
Independientemente si la propiedad EnableFieldList está configurada como False, aún si se puede cambiar la propiedad de la tabla dinámica, la función, de resumen, filtros, etc.
Nota: Los campos permanecerán fijos en las áreas de colocación y no se puede mostrar este panel si se configura la propiedad EnableFieldList como False
EnableFieldDialog
Esta propiedad de tipo Booleano (True o False) cuando se configura como False evita que el usuario puede cambiar los campos vía el cuadro de diálogo: Configuración de campo de valor.
Para entender esta propiedad, pulse clic derecho encima del cualquier celda de una tabla dinámica, allí se despliega un menú contextual. En la tras antepenúltima opción: Configuración de campo de valor, cuando pulsamos clic despliega el cuadro de dialogo que se muestra en la siguiente a continuación.
Cuando se configura la propiedad Enable FieldDialog como False, este cuadro de diálogo mediante clic derecho no aparece.
expression.PivotCahes.EnableRefresh = False
PivotCache.EnableRefresh
Esta propiedad de tipo Booleano (True o False) cuando se configura como False evita que el reporte de tabla dinámica se pueda actualizar, con esto tanto el comando en la cinta de opciones como la opción de clic derecho quedan deshabilitados.
expression.PivotCache.EnableRefresh = False
EnableDataValueEditing
Esta propiedad de tipo Booleano (True o False) la cual esta predeterminada como False, cuando se configura como True permite editar los valores en el área de valores en una tabla dinámica, es difícil decir en qué momentos es útil emplear esta propiedad como True para editar valores, sin embargo se menciona.
expression.EnableDataValueEditing = True
DisplayContextTooltips
Esta propiedad de tipo Booleano (True o False) la cual esta predeterminada como True, cuando se configura como False evita que los Tooltips de ayuda que aparecen cuando nos posicionamos en un elemento de valores no se muestren.
expression.EnableDataValueEditing = True
Teniendo lo anterior en cuenta, tenemos la siguiente Macro, lista para ser utilizada:
Macro Con Explicación:
Public Sub AplicarRestricciones()
‘Declaración de variables
Dim pvt As PivotTable
‘Nos aseguramos que la celda activa este en una tabla dinámica
On Error Resume Next
Set pvt = ActiveSheet.PivotTables(ActiveCell.PivotTable.Name)
If pvt Is Nothing Then
MsgBox «Por favor ubique la celda activa en una tabla dinámica»
Exit Sub
End If
With pvt
‘Aplicar las restricciones necesarias
.EnableWizard = False
.EnableDrilldown = False
.EnableFieldDialog = False
.EnableFieldList = False
.PivotCache.EnableRefresh = False
End With
End Sub
Bueno de esta forma, podemos habilitar o deshabilitar propiedades de la Tabla Dinámica para así protegerla.
Eso es todo por el dia de hoy, espero que esta Macro sea de gran ayuda, para proteger tus reportes de tablas dinámicas, o cualquier solución que utilice esta funcionalidad de Excel.
Hasta la Próxima