Sub CreaTablaPivote()
' Traducido (y ligeramente modificado) de
' http://www.thespreadsheetguru.com/blog/2014/9/27/vba-guide-excel-pivot-tables
Dim v_Hoja As Worksheet
Dim v_PivotCache As PivotCache
Dim v_TablaPivote As PivotTable
Dim v_PosPivote As String
Dim v_DatosFuente As String
Dim v_NombrePivote As String
' Guarda el nombre que usará al crear la tabla dinámica.
v_NombrePivote = "TablaPivote1"
' Determina el rango del que quieres hacer la tabla dinámica.
' Esto lo puedes modificar para que haga la selección.
' En el ejemplo, selecciona desde A1 hacia abajo hasta encontrar una celda vacía en la
' columna A y desde A1 hacia la derecha hasta encontrar una celda vacía en el renglón 1.
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlToRight)).Select
' Le asigna la dirección en formato renglón - columna a la variable v_DatosFuente
v_DatosFuente = ActiveSheet.Name & "!" & Selection.Address(ReferenceStyle:=xlR1C1)
' Crea una hoja nueva.
Set v_Hoja = Sheets.Add
' Le dice a Excel dónde poner la table dinámica (en este caso, en A3 de la hoja nueva).
v_PosPivote = v_Hoja.Name & "!" & v_Hoja.Range("A3").Address(ReferenceStyle:=xlR1C1)
' Crea el Pivot Cache a partir de los datos.
Set v_PivotCache = ActiveWorkbook.PivotCaches.Create( _
SourceType:=xlDatabase, _
SourceData:=v_DatosFuente)
'Crea una tabla dinámica a partir del Pivot Cache.
Set v_TablaPivote = v_PivotCache.CreatePivotTable( _
TableDestination:=v_PosPivote, _
TableName:=v_NombrePivote)
End Sub
Deja una respuesta