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>