Tuesday, August 22, 2017

8:23:00 PM
Sebagian dari sobat mungkin sudah tahu bagaimana menyimpan dokumen office khususnya excel secara aman yakni dengan memanfaatkan fitur Protection yang ada di dalamnya.  Tapi tahukah sobat bahwa kita juga bisa memodifikasi sendiri fitur keamanan dalam bentuk form login excel dengan memanfaatkan vba yang begitu sederhana?!

Beberapa web yang saya kunjungi secara parsial membahas hal ini, disini akan saya kupas semua secara tuntas dan penuh sehingga program login ini berjalan sebagaimana idealnya sebuah form login. Ini sudah melalui proses trial & error di office 2007. Baiklah tidak perlu berpanjang lebar lagi, mari ikuti langkah demi langkah berikut ini :

1.      Buka atau jalankan aplikasi Microsoft Excel.
2.      Sebelum ke langkah berikutnya hal yang sangat penting adalah Simpan dalam format Excel Macro Enable (.xlsm) atau Excel Binary (.xlsb)
3.      Pada Sheet 1 Sel A1 dan B1 ketikkan "admin" (tanpa tanda petik), Sel A1 mewakili username dan Sel B1 mewakili password.
4.      Tekan tombol keyboard Alt+F11 untuk menampilkan aplikasi Microsoft Visual Basic atau bisa juga melalui Tab Developer --> Visual Basic 
5.      Klik Kanan pada VBAProject dan pilih Insert --> UserForm pada Properties Name nya ubah menjadi FrmLogin dan pada Caption nya menjadi User Login.
6.      Tambahkan pada UserForm komponen berikut :
Ø  3 buah Label (ubah Caption nya menjadi UserLogin, User Name dan Password).
Ø  2 buah TextBox (ubah Properties Name nya menjadi TxtUser dan TxtPswd dan pada Password Char untuk TxtPswd isikan “ * ” tanpa tanda petik ).
Ø  2 buah Command Button (ubah Properties Name nya menjadi CmdLogin dan CmdCancel dan ubah Caption nya menjadi Login dan Cancel.
Ø  Kemudian susunlah Label, TextBox dan Command Button tadi seperti gambar diatas.
Ø  Selanjutkan klik kanan pada UserForm dan pilih View Code kemudian masukkan semua script berikut ini:

Private Sub CmdLogin_Click()
Set sh = Sheets(1)
If TxtUser.Value = "" Then
    MsgBox "Insert Your UserName", _
    vbExclamation + vbOKOnly, "Blank User Name"
    TxtUser.SetFocus
    Exit Sub
ElseIf TxtPswd.Value = "" Then
    MsgBox "Insert Your Password", _
    vbExclamation + vbOKOnly, "Blank Password"
    TxtPswd.SetFocus
    Exit Sub
ElseIf TxtUser.Value <> sh.Range("A1").Value Then
    MsgBox "Invalid User Name / Unregistered", _
    vbCritical + vbOKOnly, "Error User Name"
    TxtUser.SetFocus
    Exit Sub
ElseIf TxtPswd.Value <> sh.Range("B1").Value Then
    MsgBox "Invalid Password, Please try again", _
    vbCritical + vbOKOnly, "Error Password"
    TxtPswd.SetFocus
    Exit Sub
End If
MsgBox "Congratulation You Successfully  Login", _
    vbInformation + vbOKOnly, "Login Success"
Unload Me
Sheets(2).Activate
End Sub
Private Sub CmdCancel_Click()
ThisWorkbook.Close savechanges:=True
End Sub

Selanjutnya tekan F5 (tombol keyboard) untuk menguji UserForm. Coba pada User Name dan Password masukkan text "admin" (tanpa tanda petik") dan kemudian klik Login. Jika semua script dan pengaturan komponennya sudah benar maka akan muncul pesan "Congratulation You Successfully  Login". 




Berikut penjelasan Script VBA nya:

Private Sub CmdLogin_Click()
.......
End Sub 
Ketika Tombol CmdLogin di klik, maka perintah .... akan dijalankan
Set sh = Sheets(1) 
Mengeset sh = Sheets(1) atau bisa ditulis sh = Sheets("Sheet1").
If TxtUser.Value = "" Then
    MsgBox "Insert Your UserName", _
    vbExclamation + vbOKOnly, "Blank User Name"
    TxtUser.SetFocus
    Exit Sub 

Jika TxtUser tidak di isi atau kosong maka akan muncul pesan "Insert Your User Name", dan pointer akan di set pada TxtUser dan Sub diakhiri (Exit Sub)



ElseIf TxtPswd.Value = "" Then
    MsgBox "Insert Your Password", _
    vbExclamation + vbOKOnly, "Blank Password"
    TxtPswd.SetFocus
    Exit Sub

Jika TxtPswd tidak di isi atau kosong maka akan muncul pesan "Insert Your Password", dan pointer akan di set pada TxtPswd dan Sub diakhiri (Exit Sub).



ElseIf TxtUser.Value <> sh.Range("A1").Value Then
    MsgBox "Invalid User Name / Unregistered", _
    vbCritical + vbOKOnly, "Error User Name"
    TxtUser.SetFocus
    Exit Sub 

Jika TxtUser di isi tapi isinya tidak sama dengan Sheet1 Sel A1 maka akan muncul pesan "Invalid User Name / Unregistered", dan pointer akan di set pada TxtUser dan Sub diakhiri (Exit Sub).


ElseIf TxtPswd.Value <> sh.Range("B1").Value Then
    MsgBox "Invalid Password, Please try again", _
    vbCritical + vbOKOnly, "Error Password"
    TxtPswd.SetFocus
    Exit Sub
    End If

Jika TxtPswd di isi tapi isinya tidak sama dengan Sheet 1 Sel B1 maka akan muncul pesan "Invalid Password, please try again", dan pointer akan di set pada TxtPswd dan Sub diakhiri (Exit Sub). Jika semua kondisi diatas terpenuhi (TxtUser & TxtPswd tidak kosong dan TxtUser & TxtPswd sama dengan Sheet 1 Sel A1 & B1) maka Perintah IF di Akhiri (End If) dan perintah selanjutnya akan dijalankan.


MsgBox "Congratulation You Successfully  Login", _
    vbInformation + vbOKOnly, "Login Success"
Unload Me
Sheets(2).Activate
End Sub 




Akan muncul pesan "Congratulation You Successfully  Login" dan User Form akan di tutup serta Sheet 2 akan diaktifkan.

Private Sub CmdCancel_Click()
ThisWorkbook.Close savechanges:=True
End Sub 

Ketika Tombol CmdCancel di klik maka User Form akan di Tutup (keluar dari form login sekaligus menutup program excel).


Private Sub UserForm_queryclose(cancel As Integer, closemode As Integer)
If closemode <> 1 Then cancel = True
End 


Koding supaya tombol close tidak berfungsi bertujuan mencegah supaya user tidak menutup form dari tombol close dipojok kanan.



Koding untuk menampilkan userform supaya tampil otomatis ketika file Excel dibuka tanpa menampilkan aplikasi excelnya, caranya pada VBAProject --> klik kanan pada ThisWorkbook --> View Code kemudian ketikan koding dibawah ini : 
Private Sub Workbook_Open()
Application.Visible = False
Frmlogin.Show
Application.Visible = True
End Sub 

Selamat berkreasi!!!

special thanks to :

rumusexcel.com, belajaroffice.com

0 komentar:

Post a Comment