Aplikasi Excelku. Sobat Excel semuanya, pada kesempatan ini Saya akan mencoba untuk memberikan sebuah contoh membuat sebuah Userform dimana didalam Useerform tersebut, dan sesuai dengan judul artikel ini nantinya kita akan menyisipkan sebuah listbox sebagai penampil dari data yang sudah kita tentukan sebelumnya (database). Kemudian untuk melakukan pencarian data didalam listbox tersebut akan Saya gunakan sebuah textbox sebagai media untuk memasukkan (input) kata kunci dalam pencarian data yang ada didalam listbox tersebut, dengan dibantu sebuah commandbutton sebagai eksekutor dalam pencarian data sesuai dengan kata kunci yang telah diinputkan kedalam textbox tadi.
TAHAP 1
Pertama-tama kita harus memiliki sebuah deret data yang nantinya akan kita jadikan sebagai database dan kita tampilkan kedalam listbox, pada contoh ini Saya sudah memiliki sebuah deret data seperti pada gambar di bawah ini :
Seperti yang ditampilkan pada gambar di atas, disini Saya memiliki sebuah database yang merupakan database karyawan dari suatu perusahaan, dimana database tersebut diawali dari cell A1 sampai dengan cell F1, dan database tersebut terletak di Sheet1 yang sudah Saya ubah namanya (Rename) menjadi "DATA".
Selanjutnya adalah membuat Range Dianamis, karena disini Saya akan menggunakan Range Dinamis dalam pemanggilan data (database)nya. Untuk membuat Range Dinamisnya silahkan klik pada tab menu Formula, kemudian klik pada tombol/opsi Name Range, perhatikan gambar di bawah ini :
=OFFSET(DATA!$A$1;1;;COUNTA(DATA!$A$2:$A$100000);COUNTA(DATA!$1:$1))
Perhatikan gambar di bawah ini :
Seperti yang ditampilkan gambar di atas, terdapat tanda seleksi (garis putus-putus).
Untuk tahapan membuat dan setting Database selesai,
TAHAP 2
Pada tahao kedua ini kita akan membuat/mendesain Userform beserta komponen lain yang kita butuhkan, untuk kita kita harus membuka halaman Visual Basic, buka dengan cara menekan tombol kombinasi Alt+F11 pada keyboard atau bisa juga dengan klik pada tab menu Developer kemudian klik Visual Basic.
Didalam halaman/lembar kerja Visual Basic kita buat/sisipkan sebuah Useform, dengan cara klik pada menu insert kemudian pilih/klik pada userform, silahkan tentukan ukuran, warna, dan lainnya sesuai dengan keinginan. Kemudian sisipkan sebuah listbox dengan cara klik pada toolbox dan pilih Listbox, perhatikan gambar di bawah ini :
Silahkan arahkan ke area Userform yang sudah kita sisipkan sebelumnya, silahkan sesuaikan ukuran, warna sesuai dengan keinginan masing-masing, dan berikut ini hasilnya :
Berikutnya kita sisipkan sebuah textbox, dan taruh diatas listbox tadi, sesuaikan ukurannya dengan keingin masing-masing juga, dan berikut hasilnya :
Selanjutnya, sisipkan CommandButton, dan tempatkan disamping TextBox tadi, kemudian copy CommandButton1 sehingga nantinya akan ada 2 (Cdua) CommandButton, dan hasilnya akan seperti berikut ini :
Karena hasil copyan pada caption tertulis sama, yaitu CommandButton1 semua, tapi jika dicek pada propertiesnya akan berbeda, yaitu CommandButton1 dan CommandButton2.
Jika komponennya sudah ada semua, sekarang kita ubah nama (Name) dari masing-masing komponen tersbut, tujuan adalah agar memudahkan kita dalam membedakan atau mengenali nama dari masing-masing komponen tersbut.
- Ubah Name Userform1 menjadi FrmData;
- Ubah Name Textbox1 menjadi TxtCari;
- Ubah Name CommandButton1 menjadi CmdCari, kemudian ubah captionny menjadi Cari Data;
- Ubah Name CommandButton2 menjadi CmdReset, kemudian ubah captionnya menjadi Reset; dan
- Ubah Name ListBox1 menjadi ListData.
TAHAP 3
Pada tahap ini kita akan menyisipkan kode macro ke masing-masing komponen tersebut agar bisa berfungsi seperti yang kita inginkan, dan berikut ini kode-kode macro tersebut :
1. Kode Macro Untuk Menampilkan Data Ke ListBox
Kode ini berfungsi untuk menampilkan database yang sudah kita buat sebelumnya, dan untuk kode ini Saya akan memasukkannya kedalam module, jadi kita harus menyisipkan sebuah module terlebih dulu, caranya klik pada menu insert kemudian klik module. Maka akan muncul sebuah module dengan nama module1. Kemudian silahkan Copas kode di bawah ini kedalam module1 tadi :
Sub TampilData()
'https://aplikasiexcelku.blogspot.com
On Error Resume Next
With FrmData.ListData
.RowSource = "KARYAWAN"
.ColumnCount = "4"
.ColumnWidths = "00;180;180;110"
.ColumnHeads = False
End With
'https://aplikasiexcelku.blogspot.com
End Sub
Sedikit penjelasan mengenai kode di atas, pada Rowsource = "KARYAWAN" mengacu pada Range Dinamis yang sudah kita buat sebelumnya, kemudian pada ColumnCount = 4 karena data yang akan saya tampilkan kedalam ListBox (ListData) adalah sebanyak 4 (empat) kolom, yaitu dari kolom A ke kolom D, namun nantinya kolom A akan Saya sembunyikan dari tampilan ListBox (ListData), dengan demikian pada ColumnWidths = "00;180;180;110 pada deret nilai 00 merupakan cara untuk menyembunyikan kolom agar tidak tampil kedalam ListBox (LisData).
2. Kode Macro Untuk Userform (FrmData)
Private Sub UserForm_Activate()Me.TxtCari.SetFocus'https://aplikasiexcelku.blogspot.comEnd Sub
Private Sub UserForm_Initialize()Call TampilData'https://aplikasiexcelku.blogspot.comEnd Sub
4. Kode Macro Untuk CommandButton1 (CmdCari)
Private Sub CmdCari_Click()If Me.TxtCari = "" ThenMsgBox "Tulis Nama Yang Akan Dicari Dulu Boss,..!!!", vbInformation, ".:: AplikasiExcelku ::."Me.TxtCari.SetFocusExit Sub'https://aplikasiexcelku.blogspot.comEnd IfIf Me.TxtCari <> "" ThenCall FilterCariOn Error GoTo NamaKosongMe.ListData.ListIndex = 0Me.TxtCari.SetFocusNamaKosong:If Err.Number = 380 ThenMsgBox "Maaf, Nama Yang Dicari Tidak Ditemukan.", vbInformation, ".:: AplikasiExcelku ::."Me.TxtCari = ""Me.TxtCari.SetFocus'https://aplikasiexcelku.blogspot.comEnd IfExit SubEnd IfEnd Sub
Sub FilterCari()'https://aplikasiexcelku.blogspot.comDim NamaKolom As RangeDim DListCount As LongDim WsData As WorksheetSet WsData = Worksheets("DATA")FrmData.ListData.RowSource = EmptyFrmData.ListData.ClearFrmData.ListData.ColumnCount = 3For Each NamaKolom In WsData.Range("B2:B" & WsData.Range("B" & WsData.Rows.Count).End(xlUp).Row)If UCase(LCase(NamaKolom)) Like "*" & UCase(LCase(FrmData.TxtCari)) & "*" ThenDListCount = FrmData.ListData.ListCount'https://aplikasiexcelku.blogspot.comFrmData.ListData.AddItemFrmData.ListData.List(DListCount, 1) = NamaKolom.Offset(0, 0)FrmData.ListData.List(DListCount, 2) = NamaKolom.Offset(0, 1)FrmData.ListData.List(DListCount, 3) = NamaKolom.Offset(0, 2)End IfNext'https://aplikasiexcelku.blogspot.comEnd Sub
5. Kode Macro Untuk CmdReset (CommandButton2)
Private Sub CmdReset_Click()'https://aplikasiexcelku.blogspot.comWith Me.ListDataCount = .ListCount - 1For i = 0 To Count.Selected(i) = FalseNext iEnd With'https://aplikasiexcelku.blogspot.comCall TampilDataMe.TxtCari.SetFocusMe.TxtCari.Value = ""End Sub
Post a Comment for "Pencarian Data Di ListBox VBA Excel"
Tinggalkan komentar Anda pada kolom komentar di bawah ini :