dear Prazt,

solusi yang optimal dan terbaik adalah yang sesuai dengan saran dari mr Kid
dan pak De Premor..
maaf, sebelumnya Jan tidak membaca satu per satu email dalam thread ini
jadi ada hal-hal yang terlewat dari pengamatan Jan.
apa yang disampaikan oleh mr Kid adalah benar adanya, bahwa sheet harus
dalam keadaan terproteksi saat ditutup agar isinya tidak dapat diubah
manakala vba dibongkar paksa oleh user.

jadi.. dalam kasus ini Jan juga memilih solusi dari pak De dan mr Kid.

Salam,

-MJR-


Pada 28 September 2013 23.25, De Premor <[email protected]> menulis:

> **
>
>
> Code revisi sudah dikirim beberapa hari lalu, tapi sepertinya tidak
> selamat sampai tujuan
> berikut dikirimkan ulang, semoga kali ini masuk
>
> Difile terlampir disertakan juga untuk enkripsi tanggal sederhana
>
> Pada 28/09/2013 18:29, Mr. Kid menulis:
>
>
>      Oh iya, idenya menambahkan userform untuk load itu bagus. File
> digunakan kerja berapa lama pun (sampai ganti hari) tetap oke (penggunaan
> variabel sPwd yang pas penempatannya. Tapi, pertama kali si file dibuka,
> semua sheet data tidak terprotect.
>
>  *Terlepas semua orang bisa membongkar password VBAProject ataupun
> password worksheet ya...*
>  Jika filenya miss Jan dibuka lalu security macro dipilih Disable, maka
> userform yang punya tugas untuk meng-quit si file tidak bekerja.
>  Jadinya, semua sheet data bisa terekspose oleh workbook lain dalam
> instansi excel tersebut.
>
>  Misal, ada sebuah file ber-VBA yang dibuka bernama FileA yang tidak
> diproteksi VBAProjectnya,
> sedang file miss Jan yang diproteksi VBAProject-nya belum dibuka.
>
> Ketika FileA dibuka dan di-enable macro, maka VBA dalam FileA bisa bekerja
> dan VBAProject milik FileA bisa dilihat.
>  Kemudian file miss Jan dibuka dan security Macro tidak di-enable alias
> tetap disable, maka userform di file miss Jan tidak berjalan alias sheet
> yang tampil adalah sheet Menu. Jika ke VBE, maka VBAProject FileA bisa
> dilihat isinya dan file miss Jan tidak bisa dilihat isi VBAProjectnya.
>
>  Kemudian di FileA di VBA-nya, diberi prosedur untuk meng-visible-kan
> semua sheet, maka semua sheet dalam file miss Jan bisa diganti nilainya.
>
>  Sedangkan si FileA tadi itu bisa jadi sebuah file excel baru yang
> kemudian diisi VBA dan disave sebagai Macro Enabled Workbook (.xlsm).
>
>   Tentu akan sedikit berbeda (karena ada pengabaian tentang *Terlepas
> semua orang bisa membongkar password VBAProject ataupun password worksheet
> ya...*) ketika semua sheet selalu dalam keadaan ter-protect saat tidak
> digunakan (tertutup).
>
>  Script-nya PakDe sudah bisa melakukannya.
> Cukup tambahkan saja proses Thisworkbook.Save tepat sebelum End Sub di
> event WorkbookOpen.
> Apalagi kalau yang disimpan dalam script PakDe adalah tanggalnya saja
> (bukan passwordnya).
> Kemudian, cell tersebut diatur supaya warna fontnya sama dengan warna
> latar cell (supaya bisa diletakkan di cell A1 saja tapi ndak kelihatan).
>  Sheet yang menyimpan tanggal tersebut diprotect dengan password tertentu
> yang berbeda dengan sheet lainnya.
>  Proses ganti password dalam workbook open selalu didahului buka proteksi
> sheet penyimpan tanggal dan diakhiri dengan memproteksi sheet penyimpan
> tanggal.
>  Dalam blok event workbook open diberi on error resume next dan ditutup
> dengan err.clear dan on error goto 0 supaya pengaturan error selanjutnya
> bisa diserahkan ke script yang ada didalam file selain workbook open.
>  VBAProject diproteksi.
>
>  kira-kira bunyi script pakDe jadi : (pinjem scriptnya pakde)
>
> Dim TmpPass as string, NewPass as string, Sht as worksheet, vhari as
> Variant, dtCur as date
>  on error resume next
>   vhari=array("Minggu!","Senin@","Selasa#","Rabu$","Kamis%","Jumat^","Sabtu&")
>
>
>  application.screenupdating = false
>     sheets("SheetPassword").visible = xlsheetvisible
>
>     sheets("SheetPassword").unprotect "cekripnyaPakD"
>         TmpPass = sheets("SheetPassword").range("a1").value
>
>           dtCur =date
>          NewPass = vhari( weekday( dtCur ) -1 ) & format$( dtCur,"DD-MM-YYYY"
> )
>
>          for each Sht in worksheets
>              Sht.unprotect TmpPass
>             Sht.protect NewPass
>          next
>
>         sheets("SheetPassword").range("a1") = dtcur 'NewPass
>         sheets("SheetPassword").range("a1").font.colorindex= _
>             sheets("SheetPassword").range("a1").interior.colorindex
>
>       sheets("SheetPassword").enableselection=unlockedcells
>     sheets("SheetPassword").protect "cekripnyaPakD"
>      sheets("SheetPassword").visible = xlsheetveryhidden
>     application.displayalerts=false
>      thisworkbook.save
>      application.displayalerts=true
>  application.screenupdating = true
>  err.clear
>  on error goto 0
>
>  tapi bisa jadi script diatas ada errornya, soale belum dicoba. Silakan
> BeExceller yang pada suka VBA memperbaikinya. Eh atau malah PakDe yang
> punya script yang mau memperbaikinya... suwun...
>
>  Wassalam,
>  Kid.
>
>

Kirim email ke