Kamis, 30 Juni 2016

Memaksa Pengguna Mengaktifkan Macro Excel

Hi...hello...hahaha lama yah, lama banged baru nongol lagi, sepertinya setaon sekali baru nongol ngeblog, tapi yah sudahlah, setidaknya masih ada dan masih bisa nulis-nulis aja, daripada pikiran kosong gak tentu, yah mungkin bisa membantulah dikit-dikit. Oke kali ini saya akan membahas tentang Macro lagi...yaa benar, macro Excel, gak panjang sih, cuman tentang bagaimana suatu file atau workbook yang menggunakan macro bisa memaksa penggunanya untuk mengaktifkan macro, selain itu juga menghalangi file tersebut dapat di preview di jendela explorer. Mari kita mulai...

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:




Macro-nya telah didisable oleh Excel demi keamanan. Intinya adalah meski kita sudah membuat Macro SUPER CANGGIH, ribet bulet-bulet (hahaha...), tetapi macro tersebut tidak akan pernah berjalan kecuali penggunanya "MENGAKTIFKAN MACRO". Pertanyaannya: "Dapatkah kita Memaksa Pengguna Mengaktifkan Macro?".

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






  1. Aktifkan Visual Basic Editor dengan menekan ALT+F11
  2. Pada Jendela Project cari project dengan nama file anda
  3. Double Klik ThisWorkbook
  4. Pilih Event Before Close pada menu dropdown
  5. 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
  1. Aktifkan Visual Basic Editor dengan menekan ALT+F11
  2. Pada Jendela Project cari project dengan nama file anda
  3. Double Klik ThisWorkbook
  4. Pilih Event Open pada menu dropdown
  5. 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.