sheet diprotect muncul peringatan debug

  1. 6 tahun lalu
    Di sunting 6 tahun lalu oleh farud

    Assalamualaikum mas @Caton dan master excel yang lain
    dengan VBA yg diberikan mas @Caton yg ada di sheet9 (kur) alhamdulillah sudah bisa mas untuk diterapkan ke sheet yang lain tapi masalahnya muncul ketika sheet yg menjadi target itu diprotect maka akan muncul debug
    mohon solusinya mas.. file terlampir

  2. Caton

    11 Sep 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 6 tahun lalu oleh Caton

    @farud ... Assalamualaikum mas @Caton ...

    Wa'alaikumsalam.

    @farud ... tapi masalahnya muncul ketika sheet yg menjadi target itu diprotect ...

    Saya coba tidak muncul apapun mas @Farud. Error-nya gimana? Semua sheet saya proteksi, juga gak muncul kesalahannya ... (^_^)/ Ada screenshoot-nya?

  3. gambar 1 ketika sell D22 pada sheet kur ditambah
    gambar 2 debugnya

  4. itu terjadi bila di sheet12 diprotect mas..bila tidak diprotect tidak ada masalah

  5. Caton

    12 Sep 2018 Terverifikasi Indonesia + 20.101 Poin
    Di sunting 6 tahun lalu oleh Caton

    @farud ... itu terjadi bila di sheet12 diprotect ...

    Sederhananya, jika Worksheet diproteksi, dan sel-selnya terkunci (Locked), tentunya tidak akan bisa diutak-atik bukan? Namun hal ini ada pengecualiannya. Melalui VBA, kita bisa membuka terlebih dahulu Worksheet yang terkunci, kemudian melakukan proses yang ditentukan, kemudian mengunci kembali Worksheet tersebut. Jika diimplementasikan ke dalam script pada Sheet9, ± seperti berikut:

    With Sheet8
        .Unprotect
        ...
        .Protect
    End With
    ...
    With Sheet13
        .Unprotect
        ...
        .Protect
    End With

    Kode di atas akan membuka dan mengunci Worksheet tanpa password. Jika Worksheet diproteksi dengan password, tinggal tambahkan password yang digunakan untuk mengunci Worksheet, ± seperti berikut:

    With Sheet8
        .Unprotect "123"
        ...
        .Protect "123"
    End With
    ...
    With Sheet13
        .Unprotect "123"
        ...
        .Protect "123"
    End With

    Namun, Excel punya cara lain dalam mengunci Worksheet agar macro tetap aktif. Jika Worksheet diproteksi dengan menambahkan parameter UserInterfaceOnly, maka Worksheet secara umum terkunci dari sisi pengguna, namun macro tertentu dapat digunakan. Sayangnya, cara ini tidak selalu berhasil meskipun kita sudah mengaktifkannya saat Workbook dibuka ... :(

    Untuk cara pertama di atas, file terlampir.

    Demikian.

  6. Caton

    12 Sep 2018 Terverifikasi Indonesia + 20.101 Poin

    Untuk proteksi dengan cara kedua, coba mas @Farud lakukan hal berikut:

    [1]. Buka proteksi seluruh Worksheet terlebih dahulu. Kemudian, pada salah satu modul Standard (misalkan pada Module1), tambahkan prosedur berikut:

    Public Sub ReProtected()
        Dim xlSheet As Worksheet
        
        For Each xlSheet In ThisWorkbook.Worksheets
            If InStr(1, UCase$(xlSheet.Name), "KUR") = 0 Then
                xlSheet.Protect Password:="123", UserInterfaceOnly:=True
                DoEvents
            End If
        Next
    End Sub

    [2]. Kemudian, tambahkan script berikut pada modul ThisWorkbook:

    Option Explicit
    
    Private Sub Workbook_Open()
        Call ReProtected
        ThisWorkbook.Save
    End Sub

    [3]. Pada modul Sheet9, sebelum blok script yang bermasalah tersebut, tambahkan baris script berikut untuk menguji apakah proses proteksi UserInterfaceOnly berhasil:

    ...
        On Error Resume Next
        Sheet8.Range("XX1").Value = 1
        If Err.Number Then
            Call ReProtected
        End If
        Err.Clear
        On Error GoTo 0
            
        With Sheet8
            ...
        End With
    ...

    [4]. Tutup Excel atau Workbook tersebut kemudian buka kembali. Lalu coba masukkan nilai pada sheet KUR untuk menguji apakah proteksi bermasalah atau tidak.

    Demikian, selamat mencoba. Kalau bingung, contoh terlampir ... :)

  7. Alhamdulillah sudah bisa mas @Caton... sekali lagi dengan bantuan mas @Caton permasalahan yang saya hadapi terpecahkan.terimakasih banyak mas dan semoga ilmunya barokah dan semoga mas @Caton panjang umur diberikan kesehatan selalu.aamiinn

  8. Caton

    12 Sep 2018 Terverifikasi Indonesia + 20.101 Poin

    @farud ... Alhamdulillah sudah bisa mas @Caton ...

    Alhamdulillah. Jadi, mas @Farud pakai cara yang pertama atau yang kedua?

    @farud ... terimakasih banyak mas dan semoga ilmunya barokah dan semoga mas @Caton panjang umur diberikan kesehatan selalu.aamiinn ...

    Sama-sama mas @Farud, semoga keberkahan ilmu dan umur serta kesehatan juga bagi mas @Farud. Aamiin.

  9. Alhamdulillah. Jadi, mas @Farud pakai cara yang pertama atau yang kedua?

    yang pertama mas karena dimana2 yang kedua itu jadi cadangan hehehehe...
    trimakasih mas

  10. Caton

    12 Sep 2018 Terverifikasi Indonesia + 20.101 Poin

    @farud ... yang pertama mas karena dimana2 yang kedua itu jadi cadangan ...

    Jujur saja, saya lebih suka yang kedua. Secara teknis, opsi kedua lebih aman karena tidak ada proses membuka proteksi — justru yang dilakukan adalah melakukan proteksi. Lagi pula, prosedur Sub ReProtected hanya dieksekusi pada saat proses menemukan masalah saja.

    Berbeda dengan opsi yang kedua, opsi yang pertama harus membuka proteksi terlebih dahulu, lalu melakukan proses yang diperlukan baru kemudian memproteksi kembali. Sekiranya terjadi masalah pada saat proses yang dilakukan, maka besar kemungkinan Worksheet dalam keadaan tidak terproteksi — dan kemungkinannya bisa dibilang cukup besar mengingat script pada Sheet9 tersebut dapat eksekusi berkali-kali ...

    Namun, saya rasa masalah proteksi ini tidak terlalu krusial. Jadi opsi pertama pun sudah mencukupi. Kedua opsi punya kelebihan dan kekurangannya masing-masing ... :)

  11. Jujur saja, saya lebih suka yang kedua. Secara teknis, opsi kedua lebih aman karena tidak ada proses membuka proteksi — justru yang dilakukan adalah melakukan proteksi. Lagi pula, prosedur Sub ReProtected hanya dieksekusi pada saat proses menemukan masalah saja.

    baik mas akan saya coba gunakan cara yang kedua

  12. Caton

    12 Sep 2018 Terverifikasi Indonesia + 20.101 Poin

    @farud ... baik mas akan saya coba gunakan cara yang kedua ...

    Hehe ... jangan begitu mas @Farud ... :D Kalau lebih suka opsi pertama, ya gunakan itu saja. Sebagaimana yang saya sampaikan:

    ... masalah proteksi ini tidak terlalu krusial. Jadi opsi pertama pun sudah mencukupi ...

    saya melihat proteksi yang digunakan pada proyek mas @Farud ini memang tidak menjadi masalah utama. Yang penting, Worksheet terjaga dari kesalahan akibat terinput manual. Adapun nantinya mas @Farud membutuhkan proteksi lebih, ya baru dipertimbangkan lebih lanjut ...

    Demikian ... :)

  13. siap mas @Caton..

 

atau Mendaftar untuk ikut berdiskusi!