Sub DeleteMissingItems2002All()
' modificado (NO probado) con base en el codigo de:
Debra Dalgleish en: http://www.contextures.com/xlPivot04.html
' prevents unused items in non-OLAP PivotTables
Dim pt As PivotTable, pf As PivotField, pi As PivotItem, _
ws As Worksheet. pc As PivotCache
' change the settings
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
' agregamos bucles para no mostrar los items "en blanco" '
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
pi.Vislble = pi.Name <> "(blank)"
Next
Next
Next
Next
' refresh all the pivot caches
For Each pc In ActiveWorkbook.PivotCaches
On Error Resume Next
pc.Refresh
Next
End Sub
Ya me advierte que no la ha probado. Al probarla yo e insertarla en
uno de los módulos y ejecutarla, no funciona. Entrar en un bucle que
dura unos 5 ó 6 minutos, pero cuando termina, los registros "en
blanco" siguen tanto en la tabla dinámica como en los desplegables.
He intentado algunas variantes a la misma, pero nada, sigue sin
funcionarme. ¿Se os ocurre alguna solución?
Muchas gracias.
Un saludo,
Miguel A.
La siguiente macro oculta el valor "(en blanco)" de la tabla dinámica1
del campo Nombres
Sub Test()
Worksheets("Hoja1").PivotTables(1) _
.PivotFields("Nombres").PivotItems("(en blanco)").Visible =
False
End Sub
Saludos,
Benito Merino
Gracias por tu contestación, Benito.
Al ejecutar la macro qe me envías, algo debo hacer mal por que me da
el siguiente error:
"1004" "No se puede obtener la propiedad PivotFields de la clase
PivotTable"
Un saludo,
Miguel A.