Mudah Membuat Form Login Menggunakan VBA Excel
Mungkin anda akan memerlukan form login untuk melindungi privasi data excel anda. Privasi yang dimaksud dapat terlindungi dengan membangun proteksi lewat VBA Excel. Meskipun sebenarnya Microsoft Excel sudah menyediakan proteksi manual agar tidak terjadi pencurian data maupun pembukaan data anda yang mendandung privasi.
Nah, seperti judul diatas, saya akan mencoba menjelaskan cara membuat form login sederhana pada Microsoft Excel. Kali ini saya akan membuat aplikasi proteksi workbook yang mana setiap user harus memasukkan data login terlebih dahulu agar bisa mengakses data tersebut.
Ikuti langkah-langkah mudah dibawah ini :
- Jalankan Microsoft Excel.
- Simpan workbook dalam format ekstensi Excel Macro Enabled (*xlsm).
- Langsung saja buka Alt + F11 untuk menampilkan code editor VBA, atau klik perintah View Code di Menu Developer.
- Buat sebuah UserForm dengan ketentuan form dibawah ini. Ubah nama UserForm-nya menjadi frmLogin.
- 2 buah label dan ganti kedua caption-nya menjadi Nama User dan Kata Sandi.
- 2 buah textbox dan ganti nama-nya (name) menjadi txtUser dan txtPass.
- 1 Command Button dengan nama cmdLogin dan caption Masuk
- Susunlah label, textbox dan juga button seperti gambar dibawah ini
6. Klik kanan pada UserForm, pilih View Code, hapus semua baris kode yang ada dan gantikan dengan kode berikut :
Private Sub cmdLogin_Click()
Dim strUser, strPass As String
strUser = "admin"
strPass = "admin"
If txtUser.Value = "" Then
MsgBox "Silahkan Masukkan Nama User", _
vbExclamation + vbOKOnly, "Nama User tidak boleh kosong"
txtUser.SetFocus
Exit Sub
ElseIf txtPass.Value = "" Then
MsgBox "Silahkan Masukkan Kata Sandi", _
vbExclamation + vbOKOnly, "Kata Sandi tidak boleh kosong"
txtPass.SetFocus
Exit Sub
ElseIf txtUser.Value <> strUser Then
MsgBox "Nama User '" & txtUser & "' tidak terdaftar", _
vbCritical + vbOKOnly, "Terjadi kesalahan"
txtUser.SetFocus
Exit Sub
ElseIf txtPass.Value <> strPass Then
MsgBox "Kata sandi Salah, Silahkan ulangi lagi", _
vbCritical + vbOKOnly, "Terjadi kesalahan"
txtPass.SetFocus
Exit Sub
End If
MsgBox "Selamat Anda berhasil Login", _
vbInformation + vbOKOnly, "Login berhasil!"
Me.Hide
Sheets(1).Range("A1").Activate
End Sub
Private Sub UserForm_Terminate()
Application.Quit
End Sub
7. Agar UserForm muncul ketika workbook dibuka, tambahkan script berikut ke dalam kode Workbook anda (This Workbook).
Private Sub Workbook_Open()
Sheets(1).Range("A1048576").Select
frmLogin.Show
End Sub
8. Jalankan form tersebut dengan menekan tombol F5 atau gunakan tombol Run Macro pada toolbar, kemudian lihat hasilnya.
Penjelasan kode VBA diatas :
Private Sub cmdLogin_Click()
...
End Sub
kode diatas maksudnya adalah bahwa program ... akan berjalan ketika tombol cmdLogin diklik.
If txtUser.Text = "" Then
MsgBox "Silahkan Masukkan Nama User", _
vbExclamation + vbOKOnly, "Nama User tidak boleh kosong"
txtUser.SetFocus
Exit Sub
...
Penggunaan If dan Else untuk memberikan conditioning atau persyaratan. Kode diatas berfungsi untuk memberikan persyaratan jika nilai txtUser adalah "" (kosong), maka akan memunculkan pesan (MsgBox).
Berlaku juga dengan kode ElseIf, yang akan menciptakan percabangan lagi, dan setiap kode yang syaratnya terpenuhi maka akan dijalankan.
Private Sub UserForm_Terminate()
Application.Quit
End Sub
Kode diatas adalah perintah untuk mengakhiri aplikasi (termasuk workbook) jika UserForm di terminate (keluar).