Lama tak muncul di dunia blogger, sang amatir lagi dangkal ilmunya ini kembali hadir ke hadapan rekan-rekan blogger untuk berbagi sedikit “cerita” mengenai VBA Excel, mudah-mudahan bermanfaat. Kisah yang akan penulis paparkan kali ini terkait dengan “Worksheet Event”. Langsung saja, apa sih worksheet event itu?. Menurut penulis buku “Cara Cepat Mengelola Database Dengan Macro Excel”, worksheet event merupakan peristiwa yang akan terjadi apabila worksheet yang kita pilih mengalami kejadian atau perubahan tertentu. Sedangkan menurut www.exceltip.com, “Events for the worksheet object occurs when a worksheet is activated or the user changes the content of a cell”. Ada sekitar sembilan worksheet event pada VBA Excel, antara lain:
- Activate, merupakan event saat worksheet terpilih aktif
- BeforeDoubleClick, merupakan event sebelum klik ganda pada bidang worksheet terpilih.
- BeforeRightClick, merupakan event sebelum klik kanan pada bidang worksheet terpilih
- Calculate, merupakan event saat dilakukan perhitungan menggunakan formula pada worksheet terpilih
- Change, merupakan event saat ada perubahan data pada sembarang cell dalam worksheet terpilih
- Deactivate, merupakan event saat worksheet terpilih tidak aktif
- FollowHyperlink, merupakan event saat hyperlink dalam worksheet terpilih diklik
- PivotTableUpdate, merupakan event saat ada update data baru ke dalam pivot table pada worksheet terpilih
- SelectionChange, merupakan event saat ada perubahan seleksi cell atau range pada worksheet terpilih
Penulis sendiri baru mencoba beberapa event saja dari keseluruhan event yang tersebut di atas, yakni BeforeRightClick dan SelectionChange. Lantas seperti apa contoh implementasinya, berikut contoh simple-nya [CMIIW]..
This example event macro will prevent the user from accessing the shortcut menus in a worksheet, the procedure must be written in the worksheets own module sheet, e.g. Sheet1:
Penjelasan (kalau istilah haditsnya: ‘Syarh’, atau istilah Al-Qur’annya: ‘Tafsir’, red) sederhana versi penulis: Syntax macro berikut akan memproteksi user (baca: Programmer) dari perubahan-perubahan dalam Sheet (yang dilakukan oleh user lain, termasuk sang programmer itu sendiri) melalui shortcut menus “RightClick” seperti yang ditunjukkan gambar berikut:
Private Sub Worksheet_BeforeRightClick(ByVal Target As Excel.Range, _
Cancel As Boolean)
Cancel = True
MsgBox “Shortcut menus are disabled in this worksheet!”
End Sub
Pada Event diatas terdapat syntax “ByVal” yang merupakan kepanjangan dari By Value. Target dideklarasikan sebagai cell atau range yang dituju, sedangkan Cancel dideklarasikan sebagai Boolean (True/False). Jika Cancel = True, maka “RightClick” akan di-disable fungsinya, sehingga shortcut diatas tidak akan muncul. www.exceltip.com mengatakan, “Events in worksheets are activated by default, but can be deactivated by a macro”. Jika mencermati penjelasan tersebut, maka suatu event yang statusnya ‘deactivate’ bisa kembali diaktifasi melalui macro. Nah untuk case diatas, jika kita ingin mengembalikan fungsi “RightClick” ke posisi semula, maka kita cukup mengubah syntax macro ‘Cancel = True’ menjadi ‘Cancel = False’.
Ok, lanjut ke contoh berikutnya:
This example event macro will prevent the user from selecting cells in a specific range in a worksheet, the procedure must be written in the worksheets own module sheet, e.g. Sheet1:
Penjelasan sederhana versi penulis: Event macro berikut memproteksi user dari menselect, memblock atau mengutak-atik range tertentu.
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
If Not Application.Intersect(Target, Range(“A1:A100”)) Is Nothing Then
Cells(ActiveCell.Row, 2).Select
MsgBox “You can't select cells in A1:A100!”
End If
End Sub
Target dideklarasikan sebagai Cell atau Range. Intersect sendiri merupakan irisan antara baris (Row) dan kolom (Column) [lihat penjelasan lain mengenai ‘Intersect’ disini]. If Not Application.Intersect(Target, Range(“A1:A100”)) Is Nothing dibaca: “Jika cell atau range yang kita tuju/klik beririsan dengan salah satu saja dari cell di antara A1 hingga A100”, maka Cells(ActiveCell.Row, 2).Select, yakni cell aktif akan bergeser sejauh dua kolom dari target. Misalnya, jika cell aktif kita tempatkan pada cell A2, maka secara otomatis system akan memindahkan cell aktif tersebut ke C2. Mengapa? Karena cell aktif yang (sebelumnya) kita tempatkan di A2 ternyata beririsan dengan range(“A1:A100”). Simpel bukan?...Silahkan dicoba Mas Bro,…
1 Respones to "Penggunaan Worksheet Event Di VBA Excel"
gmn cara mengaktifkannya ya kok gk bs
22 Juli 2014 pukul 02.43
Posting Komentar