Supongamos que tienes una base de datos con los siguientes campos:
Código| Nombre| Dirección| Teléfono |Sueldo
Para crear la tabla dinámica se aplica el siguiente código:
<pre class="prettyprint" style="width: 528px; height: 696px;">
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Hoja1!R1C1:R6C5", Version:=xlPivotTableVersion14).CreatePivotTable _
TableDestination:="Hoja4!R3C1", TableName:="Tabla dinámica1", _
DefaultVersion:=xlPivotTableVersion14 Sheets("Hoja4").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Codigo")
.Orientation = xlRowField
.Position = 1
End With
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Nombre")
.Orientation = xlRowField
.Position = 2
End With
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Direccion")
.Orientation = xlRowField
.Position = 3
End With
With ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Telefono")
.Orientation = xlRowField
.Position = 4
End With
ActiveSheet.PivotTables("Tabla dinámica1").AddDataField ActiveSheet.PivotTables _
("Tabla dinámica1").PivotFields("Sueldo"), "Suma de Sueldo", xlSum
With ActiveSheet.PivotTables("Tabla dinámica1")
.InGridDropZones = True
.RowAxisLayout xlTabularRow
End With
Range("B4").Select
ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Nombre").Subtotals _
= Array(False, False, False, False, False, False, False, False, False, False, False, False)
Range("C4").Select
ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Direccion").Subtotals _
= Array(False, False, False, False, False, False, False, False, False, False, False, False )
ActiveSheet.PivotTables("Tabla dinámica1").PivotSelect "Codigo", xlButton, True
ActiveSheet.PivotTables("Tabla dinámica1").PivotFields("Codigo").Subtotals _
= Array(False, False, False, False, False, False, False, False, False, False, False, False)
End Sub
</pre>