VBA para insertar una tabla Power Pivot con un clic

Share on facebook
Share on twitter
Share on linkedin
Share on telegram
Share on whatsapp

Contenidos

Cuando Microsoft lanzó originalmente Power Pivot, se introdujo como un complemento para Excel 2010. Después de que se creó y lanzó la segunda versión del complemento, el equipo de Microsoft Build se centró en escribir el producto en la versión de 2013 de MS Office. Desafortunadamente ellos se acabó el tiempo para escribir todas las funciones en la versión de Office 2013 – como consecuencia Hay una serie de características que en realidad son mejores en la versión de complemento de Excel 2010 que en la versión de Office 2013.

En 2010, es más fácil editar sus medidas

right-click-300x296-4963212En Excel 2010, puede hacer clic con el botón derecho en una medida en la ventana Lista de campos y seleccionar «EDITAR». En 2013, debe abrir el cuadro de diálogo Administrar campos calculados y luego encontrar la medida que desea editar.

Y 2010 es más fácil de insertar una tabla Power Pivot

missing-button-5870464 En Excel 2010 hay un botón «insertar tabla dinámica» en la pestaña Power Pivot en Excel. Simplemente haga clic en este botón para crear una nueva tabla dinámica que esté conectada al modelo de datos. No existe tal botón en Excel 2013 (a menos que vaya a la ventana de Power Pivot.

La alternativa a navegar a la ventana de Power Pivot es que debe usar 8 clics para insertar una tabla (se muestra a continuación).

insertpivot_thumb-2336397

La solución: algo de VBA para agregar una tabla dinámica

He estado pensando en escribir un código VBA. para reemplazar esta tabla dinámica de inserción que falta conectada al botón del modelo de datos desde Excel 2013, y lo usé la semana pasada. Es una cantidad muy pequeña de código que facilita mucho el proceso. Simplemente copie el código en su workbook personal.xlb y luego agregue un acceso directo al código en su menú de inicio rápido. Luego puede usar este VBA para insertar una tabla Power Pivot en cualquier hoja de trabajo existente.

Editar: este era mi código original

Sub InsertPPTable()
'
 'capture the starting cursor location
 myAddress = ActiveCell.Address
 myAddress = ActiveCell.Address
 X = ActiveWorkbook.PivotCaches.Count

 ActiveWorkbook.PivotCaches.Create(SourceType:=xlExternal, SourceData:= _
 ActiveWorkbook.Connections("ThisWorkbookDataModel")).CreatePivotTable TableDestination:=Range(myAddress)
 Cells(1, 1).Select
 Range(myAddress).Select
End Sub

Código mejorado de Dominik

(consulte la sección de comentarios para conocer los antecedentes)

Sub InsertPowerPivotTable()
   Dim PowerPivotCache As Excel.PivotCache
   Dim NewPowerPivotTable As Excel.PivotTable

   ‘ Create new cache
   Set PowerPivotCache = ActiveWorkbook.PivotCaches.Create( _
   SourceType:=xlExternal, _
   SourceData:=ActiveWorkbook.Connections(“ThisWorkbookDataModel”), _
   Version:=xlPivotTableVersion15)

   ‘ Create PivotTable
   Set NewPowerPivotTable = PowerPivotCache.CreatePivotTable( _
   TableDestination:=ActiveCell, _
   DefaultVersion:=xlPivotTableVersion15)

   ‘ Settings for new PowerPivotTable
   With NewPowerPivotTable
     .RowAxisLayout xlTabularRow
     .HasAutoFormat = False
   End With
   
   ‘ Cleanup
   Set NewPowerPivotTable = Nothing
   Set PowerPivotCache = Nothing
End Sub

Así es como se ve insertar una tabla dinámica vinculada al modelo de datos cuando se usa mi código VBA.

withmacro_thumb-9972956

!function(f,b,e,v,n,t,s)
{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
n.callMethod.apply(n,arguments):n.queue.push(arguments)};
if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version=’2.0′;
n.queue=[];t=b.createElement(e);t.async=!0;
t.src=v;s=b.getElementsByTagName(e)[0];
s.parentNode.insertBefore(t,s)}(window,document,’script’,
‘https://connect.facebook.net/en_US/fbevents.js’);
fbq(‘init’, ‘639916389503636’);
fbq(‘track’, ‘PageView’);

Suscribite a nuestro Newsletter

No te enviaremos correo SPAM. Lo odiamos tanto como tú.