Daftar Isi
Pengantar
Membatasi masa pakai sebuah file Excel sering menjadi kebutuhan, terutama ketika membuat aplikasi trial untuk pelatihan, ujian, atau produk digital. File "expired" artinya tidak dapat dibuka atau digunakan setelah jangka waktu tertentu atau jumlah pembukaan tertentu.
Konsep Dasar File Expired
Ada dua pendekatan umum yang sering digunakan dalam membatasi penggunaan file Excel:
- Membatasi waktu (misalnya hanya berlaku hingga tanggal tertentu)
- Membatasi jumlah pembukaan (misalnya hanya bisa dibuka 10 kali)
Pada artikel ini, kita akan membahas metode kedua: membatasi jumlah pembukaan file dengan bantuan Registry Windows dan kode VBA.
Memanfaatkan Registry Windows
Registry Windows adalah sistem database internal yang menyimpan informasi konfigurasi perangkat lunak. Dengan VBA, kita dapat memanfaatkan SaveSetting
dan GetSetting
untuk menulis dan membaca nilai dari Registry.
- SaveSetting: Menyimpan nilai ke Registry
- GetSetting: Mengambil nilai dari Registry
Semua entri akan disimpan pada lokasi HKEY_CURRENT_USER\Software\VB and VBA Program Settings
.
Contoh Kode VBA
Masukkan kode berikut pada Workbook_Open di modul ThisWorkbook:
Private Sub Workbook_Open()
Dim counter As Integer
counter = GetSetting("TrialExcel", "Limit", "OpenCount", 0)
counter = counter + 1
If counter > 2 Then
MsgBox "Masa trial sudah habis!", vbCritical
ThisWorkbook.Close SaveChanges:=False
Else
SaveSetting "TrialExcel", "Limit", "OpenCount", counter
MsgBox "File ke-" & counter & " kali dibuka."
End If
End Sub
Kode di atas akan menambah jumlah pembukaan setiap kali file dibuka, dan akan menutup otomatis setelah lebih dari dua kali dibuka.
Memahami Struktur Registry
Saat kamu menjalankan SaveSetting
, Excel akan membuat struktur registry seperti ini:
HKEY_CURRENT_USER\Software\VB and VBA Program Settings\ExcelTrial\Limit\Buka
Dengan penjelasan sebagai berikut:
- "ExcelTrial" → Nama aplikasi
- "Limit" → Seksi atau kategori
- "Buka" → Nama kunci yang menyimpan angka pemakaian
- Angka → Nilai jumlah pemakaian file
Untuk membaca nilainya, gunakan:
n = GetSetting("ExcelTrial", "Limit", "Buka", 0)
Angka 0 di akhir adalah nilai default jika registry belum pernah dibuat sebelumnya.
Alternatif & Pertimbangan
Meskipun metode ini cukup efektif untuk aplikasi sederhana, ada beberapa hal yang perlu diperhatikan:
- Registry bisa dihapus oleh pengguna (jika tahu caranya)
- Metode ini tidak mengamankan data penting dalam file
- Untuk proteksi lebih kuat, gunakan tambahan password VBA dan enkripsi file
Untuk tambahan teknik lain, Anda bisa mempelajari artikel terkait tentang logika Boolean dan rumus kelulusan ujian sebagai pondasi sistem otomatisasi lainnya.
Penutup
Membuat file Excel yang memiliki masa berlaku terbatas dapat membantu dalam penyebaran aplikasi trial, latihan soal, dan laporan yang dibatasi penggunaannya. Dengan memanfaatkan SaveSetting
dan GetSetting
, Anda bisa membuat file yang "hidup" hanya dalam jumlah tertentu saja. Teknik ini mudah diterapkan, aman digunakan dalam lingkungan internal, dan sangat bermanfaat bagi guru, trainer, atau developer berbasis Excel.
File contoh telah diproteksi dengan password VBA: 123456
dan dapat didownload di tautan yang ini.
23 komentar:
Bagus banget Mas,....
Saya udah coba & emang terbukti setelah 2x buka langsung bisa ngunci, tp file tsb jadi ga bisa dibuka lagi setelah terkunci, untuk bisa terbuka lagi saya coba2 rubah codingnya, tp kok ga bisa ya, Mas....? Jadi harus mananya yang dirubah...?
pengaturan expired dilakukan pada Registry WIndows seperti pada gambar di atas. Agar bisa terbuka lagi, kita bisa hapus ENtry pada Registry yang telah dibuat, yakni "Pogramku" -- > "Demo" -- > "JumlahBuka".
Atau mengubah nilai pada "JumlahBuka" di registry menjadi 0 atau 1.
Untuk membuka Registry, Klik START pada windows, Ketikkan "regedit" di fitur pencarian. Lalu klik "Regedit". Carilah key seperti terlihat pada gambar di atas.
bagaimana untuk mengaktifkan kembali setelah kode/serial dimasukan secara codingnya gimana ya..masih newbie mas
kalau yang seperti itu, tentu lebih rumit codingnya:
Link berikut dari blognya Kang Syukron bisa dijadikan pedoman:
http://norkuys.wordpress.com/2012/04/11/tentang-konci-mengonci-pada-aplikasi-macro-excel-bikinan-saya/
saya berminat ingin mempeljari aplikasi raport 2011-2012, jika saya meminta password berapa kira kira biaayanya, saya hamid guru smk dari jember jawa timur, mhn balasan secepatnya di nurhamid83@yahoo.com
Tak perlu biaya. Di bagian akhir posting berikut sudah ada petunjuk untuk password sheet maupun VBA-nya.
http://excelheru.blogspot.com/2011/11/contoh-aplikasi-raport-yang-sudah-jadi.html
tks infonya mas sukses slalu. klo bisa bahas juga mas tentang cara buat widget dashboard di excel
Mantap, Mas....
Terima kasih atas tambahan ilmunya...
Karena saya jarang sekali mendapat ilmu yang seperti ini di malist lainnya...
Semangat, terus berkarya yah mas...
selamat pagi pak heru, setelah membaca-baca artikel yang bapak muat di blog ini saya sangat berminat untuk bisa menjadi seperti bapak. kalau bapak heru tidak keberatan saya juga ingin dikirmkan ebook(The Power of Excel), email : kdardika@yahoo.com atau kd.ardika@gmail.com terimakasih sekali atas bantuannya pak.. matur nuhun
Luar biasa Pak Heru, Terima Kasih atas sharingnya...
Salam Kenal,,
From : Sua Betria Dhani
assalam mas heru, saya sudah mencoba file expired yang mas heru buat, cm saya ada pertanyaan sedikit mas, mungkin bisa dibantu. Bagaimana coding VBAnya jika kita menginginkan expirednya menggunakan batasan tanggal bukan batasan berapa kali file dibuka..??terimakasih
Coba kode berikut!
Private Sub Workbook_Open()
Dim tglEx As Date
tglEx = "9/26/2012" 'tuliskan tgl expired di sini
If Date > tglEx Then
MsgBox " Expired alias kadaluarsa"
Application.DisplayAlerts = False
ThisWorkbook.Close
End If
End Sub
maaf mas haerudin saya pemula ,,,
pengen nanya ntuk memasukkan macronya ke file excelnya gmn tutorialnya mas ,, mohon maaf mas maklum pemula pngen blajar ,,, saya harap mas haerudin brkenan menjawabnya ,,, trima kasih
Tekan Alt + F11 di keyboard, kemudian cari item ThisWorkbook di panel sebelah kiri. Klik kanan, view Code. Tuliskan kodenya di area kosong sebelah kanan
oke mas din thnx ,,, tp ntuk save n agr codenya berjalan gmn ,,, sekali lagi thnx sekali mas ,,, maklum ae bru knal vb ,,, makasih bnyak mas din
mas, klo kita maunya ngasih batas waktunya misal 30 hari, codenya bagaimana?
Mas Heru bagaimana membuat file excel expired dengan cara countdown dan tidak tergantung pada tanggalan di kpmputer.
Mohon pencerahannya terima kasih
boby
saya sudah coba untu yg expired date tapi rasanya percuma, jika user mendisable macro di excel maka file masih bisa dibuka meski sdh di sett tgl expirednya
Mas ilmu ini berguna banget mas. Mas, kalo mau dibuat mana yang lebih dulu antara tanggal expired dengan maksimal buka file cara gimana ya mas, terimakasih sebelumnya mas
Pak heru saya ada file pdf yg diproteksi dng password. Untuk passwordnya sdh sya msukkan. Tpi file pdfnya expired (dibuat cman smpe tanggal tertentu bisa dibuka). Mohon bantuannya supaya file pdf bisa dibuka lagi. Caranya bagaimana ya?. Terimakasih
Mas heru, mau tanya, gimana kode vba utk menghapus formula dlm file excel yg sudah direset/direcovery passwordnya? ini bertujuan melindungi file agar file excel yang sdh dibuka/direset passowrdnya sdh tdk bisa digunakan lagi. trima ksh sebelumnya. smg Allah membalas dg balasan yg lebih baik.
Mas, kalau cara membuat expired pada aplikasi seperti: injector.exe gimana ya?????
MLM pak Heru...Klu ingin membuka file Excel yg expired gmn...Terpassword vba,worsheetx juga...saKalangkong pak boss
Posting Komentar