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