Cara Edit Macro
Cara edit macro hasil dari record macro dapat anda lakukan untuk menyempurnakan hasil dari perekaman macro yang biasanya bersifat statis. Untuk mengikuti latihan ini anda diharapkan sudah membaca latihan kami sebelumya yaitu tentang penggunaan filter data menggunakan macro, yang nantinya akan kita edit beberapa baris program didalamnya agar macro tersebut berjalan dengan dinamis.
Macro yang sudah kita buat akan tersimpan didalam sebuah module, didalam modul tersebut kita dapat memperbaiki semua langkah – langkah yang dilakukan sebelumnya yang mungkin dianggap salah atau tidak perlu dijalankan. Dalam kasus ini cobalah edit macro “Filter_data” yang sudah kita buat sebelumnya.
Langkah- langkah cara Edit macro adalah berikut ini:
- Bukal file Filter.xlsm
- Masuk ke tab View pilih macros, klik View Macros. Atau anda dapat menggunaka shortcut Alt+F8 untuk menampilkan kotak dialog macro.
- Didalam Kotak dialog Macro pilihlah Macro ”Filter_Data .
- klik tombol Edit.
- Setelah klik tombol Edit secara otomatis akan membuaka jendela Visual Basic Editor. Tampilan seperti gambar dibawah ini.
- Macro Filter_Data yang sudah kita buat sebelumnya belum sempurna untuk dijalankan, masih ada banyak kekurangan. kelemahan pertama adalah saat akan menjalankan macro kita harus hapus data terlebih dahulu untuk menampilkan hasil pada halaman “REPORT FILTER”. Kekurangan kedua adalah data sumber jika kita update atau menambahkan data baru datanya tidak secara otomatis masuk didalam data sumber. Untuk menanggulangi kelemahan ini kita dapat edit beberapa baris program dalam module ini.
- Berikut ini adalah hasil dari perekaman macro
Sub Filter_Data() ' Filter_Data Macro ' MAcro untuk Filter Data ' Keyboard Shortcut: Ctrl+Shift+F Application.CutCopyMode = False Application.CutCopyMode = False Sheets("DATA").Range("B6:N50").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range("B2:C3"), CopyToRange:=Range("B5"), Unique:=True End Sub
- Dari program diatas kita dapat lakukan beberapa perubahan yaitu:
- Menghapus perintah Application.CutCopyMode = False. Baris Perintah ini tidak diperlukan dalam program. perintah ini digunakan untuk menonaktifkan atau menhilangkan garis putus-putus pada seleksi saat melakukan copy data.
- Mengubah perintah Range(“B6:N50”) Menjadi Range(“B6”).CurrentRegion. Baris Perintah ini digunakan untuk seleksi table dinamis.
- Mengubah perintah referensi CopyToRange:=Range(“B5:N200”). perintah ini untuk menempatkan hasil dari filter data.
- Hasil Lengkap dari perintah yang telah diubah diatas adalah berikut ini.
Sub Filter_Data() ' Filter_Data Macro ' MAcro untuk Filter Data ' Keyboard Shortcut: Ctrl+Shift+F Sheets("DATA").Range("B6").CurrentRegion.AdvancedFilter _ Action:=xlFilterCopy, CriteriaRange:=Range("B2:C3"), CopyToRange:=Range("B5:N200"), Unique:=True
End Sub