Lompat ke konten Lompat ke sidebar Lompat ke footer

Widget Atas Posting

Cara Membuat Menu Ribbon Enable dan Disable di Microsoft Excel

Memodifikasi menu aplikasi yang kita buat di Microsoft Excel sudah menjadi keharusan, karna aplikasi dapat terlihat menjadi menarik. Sebelumnya saya sudah memberikan artikel tentang bagaimana Cara Membuat Menu Ribbon di Microsoft Excel.

Mungkin sebagian anda pernah melihat/Mendownload aplikasi yang di buat menggunakan aplikasi Delphi, Java, VB6 dll. dimana aplikasi tersebut terdapat menu Ribbon seperti Menu ribbon yang kita buat di Microsoft Excel.

Ketika aplikasi tersebut dibuka, maka anda akan melihat menu icon Ribbon tersebut terlihat agak kabur, dengan kata lain menu ribbon tersebut menjadi disable.
Ketika menu icon tersebut di klik maka icon tersebut tidak aktif.

Kemudian ketika anda berhasil login menggunakan hak akses admin, maka menu icon Ribbon tersebut akan menjadi aktif (enable).
Bagaimana caranya trik tersebut diaplikasikan menggunakan Microsoft Excel.

Silahkan simak langkah-langkah nya Cara Membuat Menu Ribbon Enable dan Disable di Microsoft Excel.

  • Pertama: Silahkan anda buka Microsoft Excel -} Tambahkan 2 sheet (Silahkan beri Nama Menu dan Login). 
  • Kedua: Silahkan buka Tab Developer -} Visual Basic. 
  • Ketiga: Buat Form Login seperti gambar di bawah ini:
  • Selanjutnya silahkan copy paste sintak tombol login di bawah ini. 
Private Sub CommandButton1_Click()
On Error Resume Next
Dim Username As String
Dim Password As String
Dim Rowcounter As Integer
Dim Role As String

Set Scr = Sheets("Login")
Set Akunq = Scr.Range("A2:A50")
Set Ws1 = Sheets("Nota")
Set Scr = Sheets("Login")
Set Akunq = Scr.Range("A3:A50")

Username = TextBox1.value
Password = TextBox2.value

'mengecek jika username dan password tidak di isi
If Username = "" Or Password = "" Then
   MsgBox "Mohon di isi Username dan Passwordnya ya....", vbInformation, "PESAN"
   Exit Sub
End If

'mengecek jika username dan Password di isi
Rowcounter = 2 'karena dimulai pada baris ke 2
Do
    If Username = Sheets("Login").Cells(Rowcounter, 1).value Then
        If Password = Sheets("Login").Cells(Rowcounter, 2).value Then
            Role = Sheets("Login").Cells(Rowcounter, 3).value
            MsgBox "Selamat Anda Berhasil Login", vbInformation, "Berhasil"
            Ws1.Range("B7").value = TextBox1.value
            Exit Do
        Else
    'cek jika password salah
            MsgBox "Password yang dimasukkan salah.....!", vbInformation, "Gagal"
            Exit Sub
        End If
        
        ElseIf Sheets("Login").Cells(Rowcounter, 1).value = "" Then
        'jika username tidak ada atau tidak cocok
        MsgBox "Username Salah !, Your username is case-sentive", vbInformation, "Gagal"
        Exit Sub
    End If
        
    Rowcounter = Rowcounter + 1
Loop

    'Sembunyikan sheet sesuai akses username
    Select Case (Role):
        Case ("Superadmin"):
            Sheets("Login").Visible = True
            Sheets("PELANGGAN").Visible = True
            Sheets("Supplier").Visible = True
            Sheets("BARANG").Visible = True
            Sheets("Penjualan").Visible = True
            Sheets("Pembelian").Visible = True
            Sheets("Nota").Visible = True
            Sheets("Labarugi").Visible = True
            Call RefreshRibbon(Tag:="Akses*")
            
        Case ("User1"):
            Sheets("PELANGGAN").Visible = True
            Call RefreshRibbon(Tag:="AksesUmum*")
     End Select
     Unload Me
End Sub

  • Keempat: tambahkan 2 buah modul, fungsi dari modul tersebut nantinya untuk membuat perintah disable dan Enable.
  • Untuk Modul 1 masukan sintax dibawah ini.

Option Explicit

Sub Login(ribbon As IRibbonControl)
 FrmLogin.Show
End Sub

Sub Logout(control As IRibbonControl)
    Sheet7.Activate
    Sheets("Login").Visible = False
    Call RefreshRibbon(Tag:="")
    Call RefreshRibbon(Tag:="Login")
    MsgBox "Anda Berhasil Logout", vbInformation, ".:: INFO ::."
End Sub

Sub Simpan(control As IRibbonControl)
    ThisWorkbook.Save
End Sub

Sub Keluar(control As IRibbonControl)
    ThisWorkbook.Save
    ThisWorkbook.Close
    
    Sheet7.Activate
    Sheets("Login").Visible = False
End Sub
   
Public Sub preview(control As IRibbonControl)
    Application.ActiveSheet.PrintPreview
End Sub
  • Untuk Module 2 silahkan masukkan sintax di bawah ini.

Option Explicit

Dim Rib As IRibbonUI
Public MyTag As String

Sub RibbonOnLoad(ribbon As IRibbonUI)
    Set Rib = ribbon
    Call RefreshRibbon(Tag:="Login")
End Sub

Sub GetEnabled(control As IRibbonControl, ByRef Enabled)
    If MyTag = "Enabled" Then
        Enabled = True
    Else
        If control.Tag Like MyTag Then
            Enabled = True
        Else
            Enabled = False
        End If
    End If
End Sub

Sub RefreshRibbon(Tag As String)
    MyTag = Tag
    If Rib Is Nothing Then
        MsgBox "Ribbon tidak di temukan, silahkan Restart WorkBook ini"
        'Biasanya karena pada keluar Userform menggunakan End bukan Unload Me
    Else
        Rib.Invalidate
    End If
End Sub

Sub GetVisible(control As IRibbonControl, ByRef Visible)
    If MyTag = "Visible" Then
        Visible = True
    Else
        If control.Tag Like MyTag Then
            Visible = True
        Else
            Visible = False
        End If
    End If
End Sub

  • Di workbooks silahkan copy paste sintax dibawah ini. 

Private Sub Workbook_BeforeClose(Cancel As Boolean)
'menyembunyikan semua sheet sebelum login
    Sheets("Login").Visible = False
End Sub

  • Kelima: Silahkan save file anda, selanjutnya buka aplikasi Custom UI, kalau belum ada silahkan download disini.
  • Keenam: Silahkan anda download sintak Custom UI disini, selanjutnya copy paste sintax yang anda download tadi.
  • Langkah terakhir klik icon validate -} Save 
Kelebihan sintak yang dibuat tadi adalah Walaupun macro security Microsoft Excel anda tidak aktif, maka menu ribbon tetap tampil seperti yang anda modif di Custom UI tersebut. Seperti gambar dibawah ini.
Kalau mau file yang sudah jadi, silahkan download di tombol di bawah ini. 

1 komentar untuk "Cara Membuat Menu Ribbon Enable dan Disable di Microsoft Excel "

  1. jika sya mempunyai 3 sheet dalam 1 group ribbon
    sheet 1(kelas)
    Sheet 2(ipa)
    Sheet 3(ips)
    maka bagaimna cranya jika sheet 1 diisi IPA jadinya IPS menjadi buram pada ribbon dan tidak berfungsi
    dan sebaliknya jika sheet 1 di isi IPS maka IPA tidak berfungsi. apa kah bisa..??

    BalasHapus