10
MACRO MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL 9 Untuk mengisi waktu, karena suntuk dengan kerjaan, aku coba membuat makro excel, Form Login dan Register Anggota, prosesnya ketika file workbook dibuka, user diminta memasukkan nama dan password, apabila nama user belum ada di data anggota, maka user diharuskan mendaftarkan diri, status user sendiri ada dua pilihan, apakah sebagai admin atau hanya user saja. Makro tersebut merupakan gabungan antara rumus di worksheet dan VBA Makro, untuk kode makronya mungkin terlalu panjang dan rada ruwet, jadi kalau ada yang ingin memberikan masukan... monggo. Sedangkan kodenya seperti dibawah ini: Private Sub UserForm_Activate() Dim ws As Worksheet ThisWorkbook.Application.Calculate Set ws = Sheets("Password") ws.Activate ws.Range("A1:N50").Font.ColorIndex = 2 Range("B4").Select LogNam.SetFocus FrmDaf.Visible = False End Sub Private Sub Masuk_Click() Dim ws As Worksheet Dim ws1 As Worksheet Dim ws2 As Worksheet ThisWorkbook.Application.Calculate Set ws = Sheets("Password") Set ws1 = Sheets("Admin") Set ws2 = Sheets("User") ws.Range("E4").Activate

Macro Excel 9

Embed Size (px)

Citation preview

MACRO MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL 9 MACRO MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL 9

Untuk mengisi waktu, karena suntuk dengan kerjaan, aku coba membuat makro excel, Form Login dan Register Anggota, prosesnya ketika file workbook dibuka, user diminta memasukkan nama dan password, apabila nama user belum ada di data anggota, maka user diharuskan mendaftarkan diri, status user sendiri ada dua pilihan, apakah sebagai admin atau hanya user saja. Makro tersebut merupakan gabungan antara rumus di worksheet dan VBA Makro, untuk kode makronya mungkin terlalu panjang dan rada ruwet, jadi kalau ada yang ingin memberikan masukan... monggo.Sedangkan kodenya seperti dibawah ini:

Private Sub UserForm_Activate()Dim ws As WorksheetThisWorkbook.Application.CalculateSet ws = Sheets("Password")ws.Activatews.Range("A1:N50").Font.ColorIndex = 2Range("B4").SelectLogNam.SetFocusFrmDaf.Visible = FalseEnd SubPrivate Sub Masuk_Click()Dim ws As WorksheetDim ws1 As WorksheetDim ws2 As WorksheetThisWorkbook.Application.CalculateSet ws = Sheets("Password")Set ws1 = Sheets("Admin")Set ws2 = Sheets("User")ws.Range("E4").ActivateActiveCell.Value = LogNam.ValueActiveCell.Offset(0, 1) = LogPwd.ValueLogNam.Value = ""LogPwd.Value = ""LogNam.SetFocusIf Range("I4").Value = True ThenMsgBox "Nama Anda " & Range("E4") & " dan anda adalah " & Range("J4").ValueMe.HideElseMsgBox "Nama Ama password salah... Kalau belum termasuk Anggota silahkan Daftar"ws.SelectEnd IfIf Range("J4").Value = "Admin" Thenws1.ActivateElseIf Range("J4").Value = "User" Thenws2.ActivateElsews.SelectEnd IfLogNam.SetFocusEnd SubPrivate Sub Daftar_Click()FrmDaf.Visible = TrueWith Status.AddItem "User".AddItem "Admin"End WithEnd SubPrivate Sub Tambah_Click()Dim Msg, Style, TitleDim ws As WorksheetThisWorkbook.Application.CalculateSet ws = Sheets("Password")If DafNam.Value = "" Or DafPwd.Value = "" Or Status.Value = "" ThenMsgBox "Data harus diisi semua"DafNam.Value = ""DafPwd.Value = ""Status.Value = ""DafNam.SetFocusElsews.Range("B4").SelectDoIf IsEmpty(ActiveCell) = False ThenActiveCell.Offset(1, 0).SelectEnd IfLoop Until IsEmpty(ActiveCell) = TrueActiveCell.Value = DafNam.ValueActiveCell.Offset(0, 1) = DafPwd.ValueActiveCell.Offset(0, 2) = Status.ValueIf Range("N4").Value > 1 ThenMsgBox "Data sudah ada coba cari yang lain"Range("B4").End(xlDown).SelectRange(Selection, Selection.End(xlToRight)).ClearContentsDafNam.Value = ""DafPwd.Value = ""Status.Value = ""DafNam.SetFocusElseMsg = "Nama Anda : " & DafNam.Value & " ,Password : " & DafPwd.Value & " , Coba Login"Style = vbOKCancel + vbDefaultButton1Title = "Konfirmasi"Response = MsgBox(Msg, Style, Title)If Response = vbOK Thenws.Range("B4").SelectFrmDaf.Visible = FalseLogNam.SetFocusElseRange("B4").End(xlDown).SelectRange(Selection, Selection.End(xlToRight)).ClearContentsDafNam.Value = ""DafPwd.Value = ""Status.Value = ""DafNam.SetFocusEnd IfEnd IfEnd Ifws.Range("B4").SelectEnd SubPrivate Sub FrmDaf_Layout()DafNam.Value = ""DafPwd.Value = ""Status.Value = ""DafNam.SetFocusEnd Sub

Untuk rumus di worksheet sendiri, merupakan rumus standar yaitu menggunakan vlookup dan gabungan text, serta rumus lainnya... lebih jauhnya... file bisa di DOWNLOAD disini

Sumber : http://www.karsono.co.cc/2010/02/macro-membuat-form-login-dan-register.html

MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL, VERSI 2 11

Setelah sekian lama, ngurusin pekerjaan yang gak ada habisnya, dan bikin social network www.sedulur.co.cc... Akhirnya ada kesempatan bikin postingan lagi... yach disempet-sempetin.. sebenernya...Postingan ini merupakan kelanjutan dari postingan sebelumnya, yaitu MACRO MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL...Kelebihan dari postingan ini, disesuaikan dari Request beberapa pertanyaan yang masuk, diantaranya :

1. Sheet Password di hide... dan hanya akan muncul satu sheet setiap proses

2. User Mau tidak mau harus melakukan Login...

3. User wajib mensetting security menjadi medium (rekomendasi) atau low (tidak direkomendasikan)..

4. User harus dan wajib Enable Macro.... kalau tidak yach... datanya gak kelihatan...

5. Dan kelebihan terakhir... lebih rapih dikit....he...

Apabila ada yang mengikuti blog ini, sebenernya kode dari file MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL Versi 2 ini merupakan gabungan dari beberapa kode postingan sebelumnya, yaitu :

1. MACRO MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL

2. WORKBOOK HANYA TERBUKA KETIKA ENABLE MACRO

3. HIDE SHEET DATABASE INPUT FORM EXCEL

Untuk kodenya sendiri... aku taruh di Empat area di jendela visual basic yaitu

1. Area UserFom

2. Area Modeul

3. Area ThisWorkbook

4. Area Worksheet Password Untuk Rumus Fungsinya

Untuk kodenya sendiri bisa dilihat seperti dibawah ini, dan sehubungan postingan ini disempet-sempetin... jadi mohon maaf tidak bisa dijelaskan per baris kodenya.... Untuk mempelajari lebih lanjut filenya bisa langsung di DOWNLOAD DISINI... 1. Kode Area UserForm

Option ExplicitDim sh As ObjectDim ws As WorksheetDim isi As LongDim Msg, Style, Title, Help, Ctxt, Response, MyString'Properties ketika Userform aktifPrivate Sub UserForm_Activate() ThisWorkbook.Application.Calculate ThisWorkbook.Sheets("Login").Visible = True 'hanya sheet Login yang tampil For Each sh In ThisWorkbook.Worksheets If Not sh.Name = "Login" Then sh.Visible = xlSheetHidden Next sh FrmLog.Visible = True LogNam.SetFocus FrmDaf.Visible = False Daftar.Visible = True Login.Visible = FalseSet sh = NothingEnd SubPrivate Sub Masuk_Click()ThisWorkbook.Application.CalculateSet ws = Sheets("Password")ws.Range("E4") = LogNam.Valuews.Range("F4") = LogPwd.ValueLogNam.Value = ""LogPwd.Value = ""LogNam.SetFocus'kondisi jika cell I4, sheet password bernilai true, maka bisa masuk loginIf ws.Range("I4").Value = True Then Msg = "Nama Anda : " & ws.Range("E4").Value & " ,Password : " & ws.Range("J4").Value Style = vbOKCancel + vbDefaultButton1 Title = "Konfirmasi" Response = MsgBox(Msg, Style, Title) If Response = vbOK Then 'kondisi jika cell j4, sheet password, nilainya "Admin" maka hanya sheet admin yg ditampilkan If ws.Range("J4").Value = "Admin" Then ThisWorkbook.Sheets("Admin").Visible = True For Each sh In ThisWorkbook.Worksheets If Not sh.Name = "Admin" Then sh.Visible = xlSheetHidden Next sh Me.Hide Else ' selain itu sheet user yang tampil ThisWorkbook.Sheets("User").Visible = True For Each sh In ThisWorkbook.Worksheets If Not sh.Name = "User" Then sh.Visible = xlSheetHidden Next sh Me.Hide End If End IfElse'jika login salah maka akan muncul pesan dibawah ini MsgBox "Nama Ama password salah... Kalau belum termasuk Anggota silahkan Daftar"End IfSet ws = NothingSet Response = NothingEnd SubPrivate Sub Daftar_Click()'kondisi jika melakukan pendaftarn maka fram Login tidak tampilFrmDaf.Visible = TrueFrmLog.Visible = False With Status .AddItem "User" .AddItem "Admin" End WithLogin.Visible = TrueDaftar.Visible = FalseEnd SubPrivate Sub Login_Click()FrmLog.Visible = TrueFrmDaf.Visible = FalseDaftar.Visible = TrueLogin.Visible = FalseEnd SubPrivate Sub Tambah_Click()ThisWorkbook.Application.CalculateSet ws = Sheets("Password")'mencari cell di kolom B yang kosongisi = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row'kondisi jika form pendaftaran kosong akan muncul messageIf DafNam.Value = "" Or DafPwd.Value = "" Or Status.Value = "" Then MsgBox "Data harus diisi semua" DafNam.Value = "" DafPwd.Value = "" Status.Value = "" DafNam.SetFocusElse 'kalau form tidak kosong maka datanya akan di masukkan ke cell di kolom B, C, D yang kosong ws.Cells(isi, 2).Value = DafNam.Value ws.Cells(isi, 3).Value = DafPwd.Value ws.Cells(isi, 4).Value = Status.Value 'untuk menghindari supaya tidak ada data user dan password yang sama If ws.Range("N4").Value > 1 Then MsgBox "Data sudah ada coba cari yang lain" ws.Range(ws.Cells(isi, 2), ws.Cells(isi, 4)).ClearContents DafNam.Value = "" DafPwd.Value = "" Status.Value = "" DafNam.SetFocus Else Msg = "Nama Anda : " & DafNam.Value & " ,Password : " & DafPwd.Value & " , Coba Login" Style = vbOKCancel + vbDefaultButton1 Title = "Konfirmasi" Response = MsgBox(Msg, Style, Title) If Response = vbOK Then FrmDaf.Visible = False FrmLog.Visible = True LogNam.SetFocus Else ws.Range(ws.Cells(isi, 2), ws.Cells(isi, 4)).ClearContents DafNam.Value = "" DafPwd.Value = "" Status.Value = "" DafNam.SetFocus End If End IfEnd IfSet ws = NothingEnd SubPrivate Sub FrmDaf_Layout() DafNam.Value = "" DafPwd.Value = "" Status.Value = ""End Sub'kondisi untuk menonaktifkan icon Close "X"Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) If CloseMode = vbFormControlMenu Then Cancel = True MsgBox "Maaf ya... harus login dulu" End IfEnd Sub

2. Untuk kode Area Modul bisa dilihat dibawah ini Fungsi dari kode di Area Modul ini adalah untuk mengembalikan ke proses Login Kembali.

Option ExplicitDim sh As ObjectSub AutoShape1_Click()ThisWorkbook.Sheets("Login").Visible = True 'hanya sheet Login yang tampil For Each sh In ThisWorkbook.Worksheets If Not sh.Name = "Login" Then sh.Visible = xlSheetHidden Next shUserForm1.ShowEnd Sub

3. Untuk kode Area Thisworkbook bisa dilihat dibawah ini Fungsi dari kode di Area Thisworkbook adalah mengatur supaya User harus melakukan enable macro dan loading userform ketika workbook dibuka.

Option ExplicitDim sh As Object'proses untuk disable macroPrivate Sub Workbook_BeforeClose(Cancel As Boolean) Application.ScreenUpdating = False ThisWorkbook.Worksheets("Peringatan").Visible = xlSheetVisible For Each sh In ThisWorkbook.Worksheets If Not sh.Name = "Peringatan" Then sh.Visible = xlSheetVeryHidden Next sh Application.DisplayAlerts = False ActiveWorkbook.Save Application.DisplayAlerts = TrueEnd Sub'proses untuk enable macroPrivate Sub Workbook_Open() Application.ScreenUpdating = True For Each sh In ThisWorkbook.Worksheets If Not sh.Name = "Peringatan" Then sh.Visible = xlSheetVisible Next sh ThisWorkbook.Worksheets("Peringatan").Visible = xlSheetVeryHidden UserForm1.ShowEnd Sub

Nach begitulah kiranya... postingan ini berakhir... Apabila ada pertanyaan... langsung saja