ocultar filtros en tablas dinámicas

Upload: felixdavidleiva6520

Post on 08-Jul-2018

228 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    1/11

    Ocultar filtros en tablas dinámicasMARTES, SEPTIEMBRE 22, 2015

    Cuando creamos una tabla dinámica Excel instala filtros en los distintos campos (filas,

    columnas y filtro del informe)

    Si por algún motivo queremos ocultar las flechas de los filtros, por eemplo para evitar que

    un usuario cambie el contenido del informe, podemos usar la opci!n "Encabe#ados de

    campos" en el grupo $ostrar en las %pciones de las tablas dinámicas

    &ero esta opci!n tiene un problema' no s!lo quita las flechas sino tambin los encabe#ados

    http://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.htmlhttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    2/11

    y como bono adicional, no quita el encabe#ado ni la flecha del filtro del informe *os

    encabe#ados Ciudad, +gente y +o han desaparecido del informe deando a nuestro

    desprevenido y poco informado usuario cavilando sobre si -anet *everling es un agente de

    ventas o tal ve# un cliente

    &ara quitar las flechas de los filtros sin quitar los encabe#ados podemos usar esta macro

    Sub ocultar_Filtros()

    Dim ptbl As PivotTable

    Dim pfld As PivotField

      Set ptbl = ActiveSheet.PivotTables(1)

      For Each pfld In ptbl.PivotFields

      pfld.EnableItemSelection = False

      Next pfld

    End Sub

    Esta animaci!n muestra el resultado

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    3/11

    &ara volver a mostrar los filtros usamos esta macro, igual a la anterior pero con la

    propiedad Enable.temSelection con el valor /rue

    Sub mostrar_Filtros()

    Dim ptbl As PivotTable

    Dim pfld As PivotField

      Set ptbl = ActiveSheet.PivotTables(1)

      For Each pfld In ptbl.PivotFields

      pfld.EnableItemSelection = True

      Next pfld

    End Sub

    0e la misma manera podemos ocultar el filtro de un determinado campo &ara evitar que el

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    4/11

    usuario pueda filtrar el informe por +gente usamos esta macro

    Sub ocultar_Item()

    Dim ptbl As PivotTable

    Dim pfld As PivotField

      Set ptbl = ActiveSheet.PivotTables(1)

      ptbl.PivotFields("Agente").EnableItemSelection = False

     

    End Sub

    &ara volver a mostrar el filtro del campo cambiamos el valor de la

    propiedad Enable.temSelection a /rue

    Posted by Jorge Dunkelmn t 1!"# $%m% , &'nks to t('s $ost

    En)'r esto $or *orreo ele*tr+n'*oBlogT('s-om$rt'r en T.'tter-om$rt'r en /*ebook-om$rt'r en P'nterest

     , 2 *omments 

    &bels! M*ros, Tbls D'nm'*s

    Formato numérico de campos de datos en tablas dinámicas&ES, A3ST3 24, 2015

    &odemos considerar dos formas de organi#ar datos en una hoa de Excel' en forma plana

    ("flat file") y en forma tabular ("tabular dataset ") Supongamos una de tabla de ventas que

    muestra las cantidades vendidas de distintos productos por ao Si organi#amos la tabla en

    forma plana tendremos algo as1 

    http://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.htmlhttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html#linkshttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=emailhttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=bloghttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=twitterhttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=facebookhttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=pinteresthttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html#comment-formhttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html#comment-formhttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html#comment-formhttp://jldexcelsp.blogspot.mx/search/label/Macroshttp://jldexcelsp.blogspot.mx/search/label/Tablas%20Dinamicashttp://jldexcelsp.blogspot.mx/2015/08/formato-numerico-de-campos-de-datos-en.htmlhttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.htmlhttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html#linkshttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=emailhttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=bloghttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=twitterhttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=facebookhttps://www.blogger.com/share-post.g?blogID=21116310&postID=6943660558228290242&target=pinteresthttp://jldexcelsp.blogspot.mx/2015/09/ocultar-filtros-en-tablas-dinamicas.html#comment-formhttp://jldexcelsp.blogspot.mx/search/label/Macroshttp://jldexcelsp.blogspot.mx/search/label/Tablas%20Dinamicashttp://jldexcelsp.blogspot.mx/2015/08/formato-numerico-de-campos-de-datos-en.html

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    5/11

    En cambio si organi#amos los datos en forma tabular, tendremos esta tabla

    Esta última forma donde todos los valores (datos numricos) están en una única columna

    (un solo único campo numrico) es la más eficiente para trabaar con tablas dinámicas

    &ero si tenemos que crear una tabla dinámica a partir de una matri# de datos plana

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    6/11

    descubriremos que cada campo de valor (las columnas 2343, 2344, etc, en el primer

    eemplo) debe ser arrastrado individualmente al área de los datos 5 lo mismo cuenta para

    el formato de los números Excel da por defecto formato "6eneral" a los datos numricos

    +l crear esta tabla dinámica

    si queremos cambiar el formato de los valores tendremos que hacerlo campo por campo,

    cinco veces en nuestro caso En nuestro auxilio vendrán las macros, como cada ve# que

    tenemos que queremos automati#ar una tarea repetitiva

    Si tenemos una única tabla dinámica en la hoa activa podemos usar esta macro

    Sub format_NUM_1()

      Dim strFormatSelected As String

      Dim oPTable As PivotTable

      Dim oPField As PivotField

      Dim iPTCount As Integer

     

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    7/11

      iPTCount = ActiveSheet.PivotTables.Count

      If iPTCount = 0 Then

      MsgBox "No se encontraron tablas dinamicas en la hoja", _ 

      vbInformation, _  

      "Formato numerico"

      Exit Sub

      End If

      Set oPTable = ActiveSheet.PivotTables(1)

      Application.Dialogs(xlDialogFormatNumber).Show

      strFormatSelected = ActiveCell.NumberFormat

      For Each oPField In oPTable.DataFields

      oPField.NumberFormat = strFormatSelected

      Next oPField

     

    End Sub

    7samos el mtodo Application.Dialogs(xlDialogFormatNumber).Show  para abrir el diálogo

    de formato de números, capturamos la elecci!n de usuario y con el loop For Each...Next  lo

    aplicamos a todos los campos de datos de la tabla

    Este video muestra el funcionamiento

    Si hay más de una tabla dinámica en la hoa activa tendremos que complicar un poco

    nuestro c!digo

    Sub format_NUM_all()

      Dim strFormatSelected As String

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    8/11

      Dim oPTable As PivotTable

      Dim oPField As PivotField

      Dim iPTCount As Integer

      Dim iX As Integer

      iPTCount = ActiveSheet.PivotTables.Count

      If iPTCount = 0 Then

      MsgBox "No se encontraron tablas dinamicas en la hoja", _ 

      vbInformation, "Formato numerico"

      Exit Sub

      End If

     

    With Application

      .ScreenUpdating = False

      .Dialogs(xlDialogFormatNumber).Show

      strFormatSelected = ActiveCell.NumberFormat

      For iX = 1 To iPTCount

      For Each oPField In ActiveSheet.PivotTables(iX).DataFields

      oPField.NumberFormat = strFormatSelected

      Next oPField

      Next iX

      .ScreenUpdating = True

      End With

    &odemos llevar nuestra macro un paso más adelante y dar al usuario la posibilidad de elegir

    que tabla dinámica formar de las que se encuentran en la hoa activa

    En este caso tendremos que agregar un 7serform con una combobox, que contendrá los

    nombres de las tablas dinámicas presentes en la hoa activa (un evento crea la lista

    dinámicamente de acuerdo a la hoa), y una rutina que recibe como variable el nombre de

    la tabla elegida, abre el diálogo de formato numrico y aplica el formato elegido a la tabla

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    9/11

    &odemos reunir todas las macros en un complemento (+dd in) e instalarlo de manera que

    podamos usarlo en todo cuaderno activo de Excel

    %tra ventaa del complemento es que agregará una pestaa en la cinta de comandos para

    activar las macros con facilidad

    El complemento se puede descargar sin cargo aqu1 

    0espus de descargar y guardar el complemento lo instalamos usando el menú

    &rogramador8Complementos (en caso de ser necesario usamos el bot!n Examinar para

    encontrar la ubicaci!n del complemento)

    https://sites.google.com/site/jldexcel/descargas/tablas-dinamicas/formato-numerico-simultaneohttps://sites.google.com/site/jldexcel/descargas/tablas-dinamicas/formato-numerico-simultaneo

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    10/11

    En caso de recibir una advertencia de seguridad aceptamos la opci!n "9abilitar contenido"

    Este video muestra la instalaci!n y el funcionamiento de la macro

    *os c!digos pueden verse con el editor de :ba (el complemento no está protegido con

    contrasea)

    +lgunas observaciones'

    • como norma de buena práctica es recomendable reempla#ar el nombre por defecto de la

    tablas dinámica (/abla dinámica4, /abla dinámica2, etc) por algo más significativo

  • 8/19/2019 Ocultar Filtros en Tablas Dinámicas

    11/11

    • podemos convertir matrices planas a matrices tabulares usando el &o;er