Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado

Eliminar las hojas generadas con doble click en una tabla dinámica

| Sin comentarios

Una de las cosas mas cheveres que puedes hacer con tu tabla dinámica en Excel es la propiedad del doble clic que te permite visualizar información complementaria para verificar el origen de algún resultado. Es una herramienta útil, desgraciadamente las hojas que se derivan de la propiedad del doble clic no se cierran y aveces pueden tomar mucho tiempo cerrarlas todas (especialmente si tienes decenas de estas hojas derivadas).

Esta macros te va a ayudar a cerrar todas estas nuevas hojas. Lo único que tendrás que hacer es tener "la intención de cerrar" este documento de excel. En ese intento, todas las hojas derivadas de tal propiedad se eliminaran, sin eliminar el resto de tus hojas importantes.

OJO cuando me refiero a "la intención de cerrar" me refiero al hecho de hacer clic en cerrar (cruz roja)

Cerrar

 

Y luego cancelar la salida... dándole clic a cancelar o volviendo hacer clic en cerrar (cruz roja) en esta nueva ventanita que te dice si estas seguro de cerra dicho documento.

Ventanita cerrar

 

Ahora si comencemos:

Este es el documento a trabajar (obviamente para que tu lo trabajes) y ademas contiene una base de datos y una tabla dinámica justo abajo de esa base de datos (toda en una misma hoja)

(Inicial) Eliminar las hojas generadas con doble click en una tabla dinámica

Bueno este es el procedimiento a seguir:

1.- Abre el Visual Basic de este excel

2.- Ahora date cuenta cuenta de que hay 2 cosas a considerar "Hoja1 (Datos y Tabla Dinámica" y "ThisWorkbook"

Previo

 

 

3.- Vamos a trabajar primero con Hoja1(Datos y Tabla Dinámica)

 

COPIA Y PEGA LO SIGUIENTE

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

'Paso 1: Declara tus variables
Dim pt As String

'Paso 2: Si la propiedad del doble click para vizualizar informacion esta desactivado, cancelar la operacion
On Error Resume Next
If IsEmpty(Target) And ActiveCell.PivotField.Name <> "" Then
Cancel = True
Exit Sub
End If

'Paso 3: Establece la tabal dinamica a trabajar
pt = ActiveSheet.Range(ActiveCell.Address).PivotTable

'Paso 4: Si la propiedad del doble click para vizualizar informacion esta activada, estonces que se realize tal operacion
If ActiveSheet.PivotTables(pt).EnableDrilldown Then
Selection.ShowDetail = True
ActiveSheet.Name = _
Replace(ActiveSheet.Name, "Hoja", "Me Borrare al Salir")
End If

End Sub

 

4.- Ahora vamos a trabajar ThisWorbook

 

COPIA Y PEGA LO SIGUIENTE

Private Sub Workbook_BeforeClose(Cancel As Boolean)

'Paso 5: Establece tus variables
Dim ws As Worksheet

'Paso 6: Esta propiedad debe generalizarse para todas las hojas
For Each ws In ThisWorkbook.Worksheets

'Paso 7: Toda hoja que se llame "Me Borrare al Salir", se borrara
If Left(ws.Name, 19) = "Me Borrare al Salir" Then
Application.DisplayAlerts = False
ws.Delete
Application.DisplayAlerts = True
End If
Next ws

End Sub

5.- Juega un poco con la macros (has doble click sobre alguna de las celdas de la tabal dinamica e intenta cerrar el documento excel)

Si has fallado en algo, o si tal vez  yo obvie algún paso, aquí esta el documento final:

Eliminar las hojas generadas con doble click en una tabla dinámica

Deja una respuesta

Los campos requeridos estan marcados con *.