Pivot table adalah salah satu fitur terkemuka di Microsoft Excel yang memungkinkan pengguna untuk mengolah data dengan cara yang efisien dan informatif.
Sementara banyak pengguna terbiasa dengan membuat pivot table secara manual melalui antarmuka pengguna Excel, menggunakan VBA (Visual Basic for Applications) dapat membuka pintu untuk mengotomatisasi proses ini, memungkinkan analisis data yang lebih mendalam dan efisien.
Dalam materi ini, kita akan menjelajahi kemampuan VBA untuk membuat dan mengelola pivot table secara otomatis.
Di Excel 2000 dan yang lebih baru, sebelum membuat tabel pivot, kita perlu membuat cache pivot untuk menentukan sumber data.
Biasanya saat kamu membuat tabel pivot, Excel secara otomatis membuat cache pivot secara otomatis. Namun jika ingin membuat Pivot dengan VBA kita perlu menulis script untuk membuat pivot Cache terlebih dahulu.
Disini kita menggunakan Fungsi dari
ActiveWorkbook.PivotCaches.Create
Tetapi sebelum membuat PivotCache ada baiknya siapkan Variable dan juga Range yang akan dibuat Pivot terlebih dahulu, misalnya
Dim PSheet As Worksheet Dim DSheet As Worksheet Dim PCache As PivotCache Dim PTable As PivotTable Set PSheet = Worksheets("PivotTable") Set DSheet = Worksheets("Data Sumber") Set PRange = DSheet.Range("A3:I219") 'data Range Untuk Pivot
Selanjutkan bisa langsung dibuatkan Pivot Cache
Set PCache = ActiveWorkbook.PivotCaches.Create _ (SourceType:=xlDatabase, SourceData:=PRange)
Selanjutnya setelah membuat Pivot Cache dilanjutkan dengan membuat Pivot Table Kosong. Jika kamu membuat Pivot Table secara manual, maka langkah ini akan terlihat seperti ini.
Script untuk membuat Pivot Table kosong bisa ditulis seperti berikut ini
Set PTable = PCache.CreatePivotTable _ (TableDestination:=PSheet.Cells(1, 1), TableName:="PivotPenjualan")
Selamat, sampai tahap ini kamu sudah berhasil membuat sebuah Pivot Table walaupaun masih kosong pada Worksheet Excel dengan Macro VBA.
Script diatas jika ditulis lengkap maka akan terlihat seperti dibawah ini
Sub BuatPivot() Dim PSheet As Worksheet Dim DSheet As Worksheet Dim PCache As PivotCache Dim PTable As PivotTable Set PSheet = Worksheets("PivotTable") Set DSheet = Worksheets("Data Sumber") Set prange = DSheet.Range("A3:I219") 'data Range Untuk Pivot Set PCache = ActiveWorkbook.PivotCaches.Create _ (SourceType:=xlDatabase, SourceData:=prange) Set PTable = PCache.CreatePivotTable _ (TableDestination:=PSheet.Cells(1, 1), TableName:="PivotPenjualan") End Sub