Membuat Pengguna Mengaktifkan Macro
Hal ini jadi perhatian saya ketika sedang mencoba membuat sebuah katalog harga sebagai database, namun untuk membatasi akses pada file tersebut kemudian saya membuat menu login memanfaatkan macro, dan kok di jendela preview isi file atau workbook dapat diakses,
lalu file terbuka seperti biasa dan tidak masuk ke menu login, setelah cek dan ricek...ternyata ada warning seperti gambar berikut:
Berikut solusi saya, sebenarnya simple saja...yang pertama adalah kita membuat satu worksheet dengan nama "MULAI" atau apapun itu terserah anda, nah worksheet ini sebenarnya hanya berisikan peringatan bagi pengguna untuk mengaktifkan Macro, seperti gambar di bawah:
Langkah kedua adalah kita menyembunyikan worksheet lainnya kecuali worksheet "MULAI". Terakhir...kita membuat Macro yang akan menampilkan worksheet yang hilang tadi sesuai loginnya.
Sampai di sini ceritanya tuh begini, ketika pengguna membuka file atau workbook Excel, maka pengguna akan diminta untuk mengaktifkan macro (bila Macro Excelnya belum aktif), dan sedikit memaksa karena pengguna tidak akan dapat melihat worksheet lain kecuali worksheet "MULAI".
Nah, untuk langkah terakhir di atas, maka kita memerlukan dua buah macro: pertama adalah macro yang menyembunyikan semua worksheet kecuali worksheet "MULAI" saat file menutup dan kedua adalah macro yang memunculkan semua worksheet kecuali worksheet "MULAI" saat file terbuka.
Macro saat file menutup
- Aktifkan Visual Basic Editor dengan menekan ALT+F11
- Pada Jendela Project cari project dengan nama file anda
- Double Klik ThisWorkbook
- Pilih Event Before Close pada menu dropdown
- Masukkan kode berikut
______________________________________________________________________
Private Sub Workbook_BeforeClose(Cancel As Boolean)
'Step 1: Mendklarasikan variables, ini akan membuat sebuah wadah memori untuk setiap sheet yang kita loop
Dim ws As Worksheet
'Step 2: Memastikan sheet MULAI tampil
Sheets("MULAI").Visible = xlSheetVisible
'Step 3: Melakukan looping untuk mengecek semua worksheet
For Each ws In ThisWorkbook.Worksheets
'Step 4: Memastikan aksi berikut untuk sheet yang bukan sheet MULAI
If ws.Name <> "MULAI" Then
'Step 5: Menyembunyikan sheet selain sheet MULAI
ws.Visible = xlVeryHidden
End If
'Step 6: Loop ke sheet berikut
Next ws
'Step 7: Setelah mengecek macro menyimpan dan berakhir
ActiveWorkbook.Save
End Sub
______________________________________________________________________
Macro saat file terbuka
- Aktifkan Visual Basic Editor dengan menekan ALT+F11
- Pada Jendela Project cari project dengan nama file anda
- Double Klik ThisWorkbook
- Pilih Event Open pada menu dropdown
- Masukkan kode berikut
______________________________________________________________________
Private Sub Workbook_Open()'Step 1: Mendklarasikan variables, ini akan membuat sebuah wadah memori untuk setiap sheet yang kita loop
Dim ws As Worksheet
'Step 2: Start looping semua worksheets
For Each ws In ThisWorkbook.Worksheets
'Step 3: Menampilkan semua Worksheets
ws.Visible = xlSheetVisible
'Step 4: Loop ke worksheet berikut
Next ws
'Step 5: Sembunyikan sheet MULAI
Sheets("MULAI").Visible = xlVeryHidden
'Step 6: Sembunyikan Sheet selain Antarmuka:
VisibleFalse
End Sub
_____________________________________________________________________
Setelah Macro di atas selesai dimasukkan, maka kita akan mempunyai File atau Workbook yang hanya bekerja bila Macro diaktifkan.
Demikian semoga bisa membantu teman-teman yang sedang belajar macro.
Tidak ada komentar:
Posting Komentar