Catetan

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

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 Explicit
Dim sh As Object
Dim ws As Worksheet
Dim isi As Long
Dim Msg, Style, Title, Help, Ctxt, Response, MyString

'Properties ketika Userform aktif
Private 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 = False
Set sh = Nothing
End Sub
Private Sub Masuk_Click()
ThisWorkbook.Application.Calculate
Set ws = Sheets("Password")

ws.Range("E4") = LogNam.Value
ws.Range("F4") = LogPwd.Value
  
LogNam.Value = ""
LogPwd.Value = ""
LogNam.SetFocus
   
'kondisi jika cell I4, sheet password bernilai true, maka bisa masuk login
If 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 If
Else
'jika login salah maka akan muncul pesan dibawah ini
    MsgBox "Nama Ama password salah... Kalau belum termasuk Anggota silahkan Daftar"
End If
Set ws = Nothing
Set Response = Nothing
End Sub
Private Sub Daftar_Click()
'kondisi jika melakukan pendaftarn maka fram Login tidak tampil
FrmDaf.Visible = True
FrmLog.Visible = False
    With Status
        .AddItem "User"
        .AddItem "Admin"
    End With
Login.Visible = True
Daftar.Visible = False
End Sub
Private Sub Login_Click()
FrmLog.Visible = True
FrmDaf.Visible = False
Daftar.Visible = True
Login.Visible = False
End Sub

Private Sub Tambah_Click()
ThisWorkbook.Application.Calculate
Set ws = Sheets("Password")
'mencari cell di kolom B yang kosong
isi = ws.Cells(Rows.Count, 2).End(xlUp).Offset(1, 0).Row

'kondisi jika form pendaftaran kosong akan muncul message
If DafNam.Value = "" Or DafPwd.Value = "" Or Status.Value = "" Then
    MsgBox "Data harus diisi semua"
    DafNam.Value = ""
    DafPwd.Value = ""
    Status.Value = ""
    DafNam.SetFocus
Else
    '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 If
End If
Set ws = Nothing
End Sub

Private 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 If
End 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 Explicit
Dim sh As Object

Sub 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 sh
UserForm1.Show
End 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 Explicit
Dim sh As Object
'proses untuk disable macro
Private 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 = True
End Sub
'proses untuk enable macro
Private 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.Show
End Sub

Nach begitulah kiranya... postingan ini berakhir... Apabila ada pertanyaan... langsung saja pencet komentar... atau email juga boleh....

35 comments:

Unknown

27 Nov 2010, 09.46.00
sippp
Dayat "Pak Dhe"

30 Nov 2010, 12.08.00
ok, tuh bos
Rhoni

31 Des 2010, 23.02.00
Mas Saya Punya Masalah Ne...?
Saya Mau buat Tobol Input data seperti Posting mas di HIDE SHEET DATABASE INPUT FORM EXCEL
Tibadi Input di = Cell I5
Tanggal Input di = Cell K7 dan J11
TTD input di = I14
NIP = hanya boleh di isi dengan angka..
Tolong Mas yang udah Mahir N jago.. Scrip untuk Input data seperti kronologis gambar di atas..
Dan pada bagian database”= (sheet)” nya buatkan tombol print Automatis dan Save
NB: jika tombol masuk di klik data akan mengisi cell-cell tsbt di atas dan data yang sudah ada di sel tersebut akan di timpa (seperti kita mengetik di cell )
karsono

3 Jan 2011, 16.51.00
untuk pertanyaan diatas coba lihat postingan HIDE SHEET DATABASE INPUT FORM EXCEL kemudian ganti kode pada sub ocreh_klik() menjadi seperti dibawah ini


Private Sub Ocreh_Click()
Dim ws As Worksheet
Set ws = Worksheets("Dataku")

If Trim(Me.Tibadi.Value) = "" Then
Me.Tibadi.SetFocus
MsgBox "Datanya diisi dulu ya"
Exit Sub
Else
If Not IsNumeric(NIP.Value) Then
Me.NIP.SetFocus
MsgBox "Isi Data dengan No Telephone yoo"
Exit Sub
End If
End If

ws.Range("I5").Value = Me.Tibadi.Value
ws.Range("K7,J11").Value = Me.Tanggal.Value
ws.Range("I14").Value = Me.TTD.Value
ws.Range("A1").Value = Me.NIP.Value

Me.Tibadi.Value = ""
Me.Tanggal.Value = ""
Me.TTD.Value = ""
Me.NIP.Value = ""
Me.Tibadi.SetFocus
End Sub

sesuaikan nama textbox user form dengan kode diatas.

kemudian insert module dan tambahkan kode dibawah ini, untuk membuat command print dan save, setelah itu insert autoshape dan assign macro sesuai perintah sub dibawah.

Sub ngeprint()
Dim ws As Worksheet
Set ws = Worksheets("Dataku")
ws.Activate
ActiveSheet.PrintOut
End Sub

Sub simpen()
ThisWorkbook.Save
End Sub

apakah membantu ?
Bedhoel

16 Jan 2011, 15.22.00
Tq Gan
Visit Back y
http://www.hanyaberbagi2.blogspot.com/
Anonim

4 Feb 2011, 13.34.00
Bang mau tanya...
Kalo mau buat macro input data gimana ya??

Maksudnya klo kita input suatu angka disitu, trus otomatis angka tsb masuk ke dalam tabel...

Trims sebelumnya,
karsono

4 Feb 2011, 14.43.00
kalau untuk masalah userform yang jadi intinya adalah... nilai pada inputform akan kita masukkan ke mana... misal nilai pada inputform1 akan dimasukkan pada range I5, contoh kodenya :

sheet.Range("I5").Value = Me.inputform1.Value
Anonim

12 Mar 2011, 16.06.00
wah lom ke otakan saya.. hehe
soalnya lagi fokus mikirin cara masukin data terus muncul jam otomatis di excell.
Sekalian mu tanya ma master excell, gmna ya cara.a?? tolong bantu ya...

misalnya, saya masukin data (contoh: angka 1) ke "A2", terus di "B2" muncul "sesuai jam di komputer".
Saya pake rumus :
=if(A2="1";now();"-")
kemudian saya copy ke kolom selanjutnya di "B3". Eh, ternyata d kolom "B2" juga ikut ter-update. hiks..hiks..
Jadi, saya pengen yg di kolom "B2" tidak rubah.

gmna ya rumus.a ??

tolong ya atau kirim ke email kku, tastha_teaa@ovi.com

trims & salam sukses,
Tastha
karsono

15 Mar 2011, 13.12.00
cobain pake kode ini


Sub entri()
Dim r As Long
r = Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Row

Cells(r, "A").Value = Range("B2").Value
With Cells(r, "B")
.Value = Now
.NumberFormat = "mm/dd/yyyy hh:mm:ss"
End With
Cells(r, "C").Value = Application.UserName

End Sub
karsono

15 Mar 2011, 13.13.00
kondisi diatas akan melakukan entri setiap nilai yang ada di Cell B2, dimana akan memunculkan nilai tanggal dan user
Unknown

22 Mar 2011, 19.01.00
mas, klo untuk di web giman buatnya tapi html?
Anonim

30 Mar 2011, 11.46.00
Mas saya boleh tidak minta dikirimkan file MACRO MEMBUAT FORM LOGIN DAN REGISTER ANGGOTA DI EXCEL versi 2 ke email saya : catrin_dx@yahoo.com karena saya kesulitan untuk download...
wawan

30 Mar 2011, 12.03.00
mas link downloadnya dah gak bisa tuh
karsono

30 Mar 2011, 13.37.00
Sory bos-bos... link sebagian sudah diupdate... sehubungan hosting ane pada ngedrop, jadi file pada ilang semua... untung ane pake blogger... jadi postingan kagak ilang
Iyoxx

17 Apr 2011, 22.58.00
Mas mau nanya sekalian minta bantuan.
itu scriptnya klo kita dah login yang keluar hanya sheet admin saja ya, bagaimana cara nya menampilkan sheet lainnya?? jd sy protect dokumen exel saya tp pas keluar hanya halaman admin saja, sheet data saya ke hideen, bagaimana cara menampilkan sheet yg lain? terima kasih
karsono

18 Apr 2011, 11.30.00
@iyoxx : coba cari kode makro If Not sh.Name = "Admin" Then sh.Visible = xlSheetHidden kemudian ganti dengan kode makro

Select Case sh.Name
Case "Admin", "Data"
sh.Visible = xlSheetVisible
Case Else: sh.Visible = xlSheetVeryHidden
End Select


yang patut jadi perhatian adalah kode
Case "Admin, "Data" ganti dengan nama sheet yang ingin ditampilkan... begitu...
iyoxx

18 Apr 2011, 12.07.00
mas klo yang mau ditampilkan lebih dari 1 apa kita harus tulis satu-satu sheet nya? ato ada cara lain? tq
karsono

18 Apr 2011, 13.17.00
@iyoxx : untuk sementara sy cuman bisa ngasih info itu.
Kalo gak dibalik aja, kalo memang sheet yang ingin ditampilkan dinamis, kita rubah kode select case diatas untuk data yang dihide.
caranya tinggal dirubah data case menjadi sheet yang ingin di hide, dengan status visible hidden, case else visible is true
hermawan

25 Apr 2011, 11.14.00
terimakasih bnyak atas infonya..numpang sedot untuk belajar boz...
Anonim

18 Mei 2011, 01.09.00
Thanks Kang Karsono.. Ilmunya bermanfaat sekali..

Sekalian nanya neh.. saya udah coba masukin rumus makro form login user ke file aplikasi sederhana yang saya buat.. setelah file tersebut coba di open, kok malah ga ada yah form login tersebut, tapi setelah saya cek dan saya coba run makro pada VBA di file exel tersebut, Form login bisa dijalankan.. kira-kira apa menyebabkan hal tersebut,

Kemudian, setelah saya coba-coba run makro, tpi setelah login sukses kenapa sheet yang terbuka masih sheet "login", padahal pada rumus macronya sudah saya setting ke sheett yang lain.. dalam hal ini saya telah membuat sheet "home" sebagai interface awal file program yang saya buat...

MOhon bantuannya kang...
karsono

18 Mei 2011, 10.38.00
untuk pertanyaan diatas, saya juga tidak bisa menjawab pasti apa penyebabnya....terutama kalau apabila ada perubahan pada kode aslinya... penyebabnya bisa bermacam-macam...

Tapi berdasarkan apa yang pernah saya bikin...
biasanya pengaruh ke memory kode makro tersebut yang terlalu berat...
coba kurangi memory dengan kode aplikasi EnableEvents, ScreenUpdating dibikin false... diawal dan true diakhir kode

Atau kalo mau bisa dikirmkan file contohnya... biar tahu pasti errornya dimana....
Bisnis pulsa murah lengkap banten

23 Mei 2011, 21.25.00
Thank sob
Anonim

9 Jun 2011, 15.45.00
Contoh nya brow,,,

Trims
karsono

10 Jun 2011, 22.08.00
contoh download saja langsung
Anonim

7 Jul 2011, 23.41.00
mas udah donlot
mas ada menu log in
dia minta nama sama password

apa mas nama dan passwordnyo

cos nggak bsa masuk ane
karsono

1 Agu 2011, 00.57.00
register dulu
Anonim

4 Jan 2012, 11.24.00
mas kalo di tambah form ganti password setelah login dan yang ganti password hanya user yang login, tidak bisa ganti password user lain itu macronya gimana ya mas
Anonim

4 Jan 2012, 12.57.00
mau upload file ku, ke alamat mana ya?....
Anonim

3 Agu 2012, 00.16.00
Senengnya nyasar ke blog yang banyak ilmunya kayak ini...terimakasih pak berbagi ilmunya...

oia, ngomong2 ada satu yang kurang dari form login ini, kalo ga jadi masuk ato daftar keluarnya lewat mana ya?
Anonim

1 Mar 2014, 23.24.00
Mas mau nanya bagaimana membuat textbox di userform yang khusus untk tanggal (1 januari 2011) jadi ketika masuk ke sheet database, bisa sesuai format tanggal... mohon pencerahannya ... terimakasih
andreas

13 Jul 2018, 15.09.00
mantap bro, terimakasih sudah share
solder hp
nafafisika

21 Apr 2019, 04.56.00
terimakasih sudah banyak membantu
namun ada sedikit kendala.
sudah berhasil namun munculnya setipa mau buka selalu reply semua sheet.
gimana caranya agar tidak muncul, tetapi langsung muncul HOME
nafafisika

21 Apr 2019, 05.38.00
pak bisa minta emainya pa karsono
Unknown

29 Jan 2020, 11.32.00
Bagaimana menampilkan nama user di Worksheet sesuai dengan username yang login
terimakasih...
Unknown

13 Okt 2021, 18.53.00
Bagaimana caranya supaya icon x pada userform benar benar tidak berfungsi jadi bisa login dengan memasuka username dan password saja selain itu tidak bisa masuk

Posting Komentar