Cara Menampilkan Data Tersimpan Ke ListBox UserForm
Cara Menampilkan Data Tersimpan Ke ListBox UserForm merupakan bagian "Belajar VBA Excel". ListBox merupakan item Toolbox Controls untuk menampilkan data yang telah tersimpan dalam database Worksheet Excel ke UserForm. Listbox juga sering saya gunakan sebagai tampilan data untuk mengubah maupun menghapus data yang tersimpan serta sebagai penyimpanan data sementara sebelum disimpan kedalam database Worksheet Excel.
Langsung saja kita lanjutkan pembelajaran kali ini yaitu mengenai cara menampilkan data yang disimpan kedalam ListBox UserForm VBA Excel. Untuk itu kalian buka kembali file pembelajaran terakhir yakni pembahasan mengenai "Cara Menyimpan Data Inputan", dan sekali lagi Admin tekankan pembelajaran ini saling berkaitan dan berlanjut. Jadi bagi kalian yang baru bergabung, silahkan pelajari part sebelumnya agar lebih mudah dipahami.
Sebelumnya juga sesuai pembelajaran pertama "Tutorial Belajar VBA Excel Autodidak Bagi Pemula", telah dibuat form input data di UserForm. Kali ini, menggunakan object ListBox, salah satu object tools yang ada dalam Toolbars Controls VBE.
Untuk menampilkan data yang disimpan kedalam ListBox, akan Admin uraikan dalam dua cara yaitu:
A. Cara Pertama Menampilkan Data Tersimpan Ke ListBox UserForm
Untuk cara pertama ini menggunakan fungsi CurrentRegion yang berarti seluruh data yang ada didalam database excel akan ditampilkan kedalam ListBox. Langkah-langkah melalui cara pertama ini sebagai berikut:
1. Pastikan ListBox sudah diubah (name) menjadi "ListBoxBelajar", agar sesuai dengan makro yang diberikan nantinya. Pengaturan properties lainnya sesuaikan saja dengan pembelajaran part 1 atau object tools lainnya yang sudah dibuat.
2. Buka Code Window (jendela kode) VBE, ganti/tambahkan makro berikut:
Private Sub Tampil_ListBoxBelajar()
With ListBoxBelajar
.ColumnCount = 8
.ColumnHeads = False
.ColumnWidths = "50;110;80;130;100;70;80"
.List = Worksheets("BelajarVBA").Range("A2:H2").CurrentRegion.Value
.MultiSelect = fmMultiSelectSingle
.BoundColumn = 0
End With
End Sub
Penjelasan makro diatas adalah:
- Private Sub Tampil_ListBoxBelajar() dan ditutup dengan End Sub. Makro ini seperti sebelumnya untuk membuat suatu scope (ruang lingkup) prosedur dengan object prosedur adalah ListBoxBelajar.
- With ListBoxBelajar yang ditutup dengan End With. Perintah untuk menset bahwa perintah setelah/dibawahnya yang ditulis di buat utuk mengatur isi pada ListBoxBelajar.
- .ColumnCount = 8. Perintah untuk menentukan jumlah kolom yang akan ditampilkan dalam ListBox. Kalian bisa mengatur berapa jumlah kolom yang ingin ditampilkan, namun tidak dapat memilih judul (kategori) yang ingin ditampilkan yang berarti data kolom yang akan ditampilkan mulai databese kolom A dan seterusnya.
- .ColumnHeads = False. Ini untuk memberi border atau line di head (judul) di ListBox. Perhatikan gambar dibawah untuk membedakannya. Judul tersebut bisa dimasukkan kedalam border bila menggunakan fungsi offset dan counta dengan membuat list database, namun Admin tidak bahas mengenai cara tersebut karena Admin pikir cara tersebut agak membingungkan dan akan sulit dipahami oleh pemula yang belajar otodidak sesuai tujuan blog ini.
- .ColumnWidths = "50;110;80;130;100;70;80". Ini untuk mengatur jarak lebar kolom yang ditampilkan di ListBox.
- .List = Worksheets("BelajarVBA").Range("A2:H2").CurrentRegion.Value. Makro ini adalah perintah untuk mengambil seluruh data yang ada pada wilayah database excel mulai dari Sel A2 sampai H2 sampai baris data terakhir. Current region ini pengganti yang biasa digunakan yaitu iRow.
- .MultiSelect = fmMultiSelectSingle. Makro ini hanya boleh memilih satu data untuk dieksekusi, entah itu akan diapakan nantinya.
- .BoundColumn = 0. Default nilai bound adalah 1 (satu). Fungsinya admin sendiri juga belum terlalu paham π.
- Catatan..!!!. Pengaturan diatas dapat juga diatur di properties ListBox. Jika kalian mengaturnya disini, otomatis pengaturan yang diproperties tidak berlaku dan hanya akan membaca pengaturan yang dibuat di code window.
3. Lanjut untuk menampikan secara otomatis data yang ada pada ListBox dengan menambahkan Tampil_ListBoxBelajar ke prosedur UserForm Active dan agar data tetap terperbaharui saat di simpan tambahkan pula ke dalam prosedur Bersihkan.
B. Cara Kedua Menampilkan Data Tersimpan Ke ListBox UserForm
Berbeda dengan cara yang pertama, cara kedua ini lebih flexibel karena kita dapat memilih dan menentukan data yang dianggap penting saja untuk ditampilkan. Namun cara ini juga memilik kekurangan yaitu hanya mampu menampilkan maximal 10 kolom data saja.
Mengenai caranya menampilkan data tersimpan ke Listbox menggunakan cara kedua, ikuti langkah-langkah berikut ini:
1. Buat Prosedur baru seprti cara pertama diatas, ganti/tambahkan makro dibawah ini:
Private Sub Tampil_ListBoxBelajar()
ListBoxBelajar.Clear
Set Ws = Worksheets("BelajarVBA")
iRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row
With ListBoxBelajar
.AddItem
.ColumnCount = 8
.ColumnWidths = "50;80;80;80;80;80;80;80"
.List(.ListCount - 1, 0) = "KODE ID"
.List(.ListCount - 1, 1) = "NAMA"
.List(.ListCount - 1, 2) = "ALAMAT"
.List(.ListCount - 1, 3) = "KECAMATAN"
.List(.ListCount - 1, 4) = "KELURAHAN"
.List(.ListCount - 1, 5) = "TGL. LAHIR"
.List(.ListCount - 1, 6) = "JENIS KELAMIN"
.List(.ListCount - 1, 7) = "MODAL USAHA"
End With
For i = 2 To iRow
With ListBoxBelajar
.AddItem
.List(.ListCount - 1, 0) = Ws.Cells(i, 1)
.List(.ListCount - 1, 1) = Ws.Cells(i, 2)
.List(.ListCount - 1, 2) = Ws.Cells(i, 3)
.List(.ListCount - 1, 3) = Ws.Cells(i, 4)
.List(.ListCount - 1, 4) = Ws.Cells(i, 5)
.List(.ListCount - 1, 5) = Ws.Cells(i, 6)
.List(.ListCount - 1, 6) = Ws.Cells(i, 7)
.List(.ListCount - 1, 7) = Ws.Cells(i, 8)
End With
Next i
End Sub
Penjelasan kode makro diatas adalah:
- Private Sub Tampil_ListBoxBelajar() dan ditutup dengan End Sub. Makro ini seperti sebelumnya untuk membuat suatu scope (ruang lingkup) prosedur dengan object prosedur adalah ListBoxBelajar.
- Set Ws = Worksheets("BelajarVBA"). Ini adalah makro yang menyatakan bahwa data yang di input akan tersimpan di worksheet database worksheet "BelajarVBA".
- iRow = Ws.Cells(Rows.Count, 1).End(xlUp).Row. Kode makro ini adalah sebuah perintah untuk mencari data sampai baris terakhir untuk ditampilkan.
- With ListBoxBelajar yang ditutup dengan End With. Perintah untuk menset bahwa perintah setelah/dibawahnya yang ditulis di buat utuk mengatur isi pada ListBoxBelajar.
- .List(.ListCount - 1, 0) = "KODE ID" sampai .List(.ListCount - 1, 7) = "MODAL USAHA". Merupakan perintah untuk membuat head (judul) yang akan ditampilkan ke ListBox. Berbeda dengan cara pertama tadi yang otomatis menampilkan Head yang ada di database excel, cara kedua ini karena kita memilah yang mana yang akan kita tampilkan, maka harus membuatnya tersendiri.
- For i = 2 To iRow. Perintah yang menyatakan bahwa data yang ingin ditampilkan diambil dari baris kedua database excel sampai ke baris terakhir data.
- .List(.ListCount - 1, 0) = Ws.Cells(i, 1) sampai .List(.ListCount - 1, 7) = Ws.Cells(i, 8). Perintah yang menyatakan bahwa data yang ditampilkan pada setiap kolom head (judul), diambil sesuai kolom database judul tersebut. Contoh data Kode ID diambil dari kolom Cell A. dan seterusnya.
- Catatan..!!!. Di ListBox, kolom (ListCount) pertama dinyatakan dalam 0 (nol), dan pada kolom (ListCount) pertama database worksheet excel dinyatakan 1 (satu) dan seterusnya.
2. Langkah berikutnya sama dengan cara pertama tadi yaitu untuk menampikan secara otomatis data yang ada pada ListBox dengan menambahkan Tampil_ListBoxBelajar ke prosedur UserForm Active dan agar data tetap terperbaharui saat di simpan tambahkan pula ke dalam prosedur Bersihkan.
Nah, demikian tutorial kali ini dan bila ingin melihat tutorial ini dalam bentuk video, silahkan berkunjung ke Channel Youtube Butta Toa. Semoga bermanfaat, Wassalam.
Post a Comment for "Cara Menampilkan Data Tersimpan Ke ListBox UserForm"