Skip to content Skip to sidebar Skip to footer

Cara Menampilkan Data Tersimpan Ke ListBox UserForm

Cara Menampilkan Data Tersimpan Ke ListBox UserForm merupakan bagian "Belajar VBA Excel Part 7". 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 Sobat SD buka kembali file pembelajaran terakhir yakni part 7 yang membahas mengenai "Cara Menyimpan Data Input UserForm Ke Worksheets dan Penggunaan MsgBox - Belajar VBA Excel Part 6", dan sekali lagi Admin tekankan pembelajaran ini saling berkaitan dan berlanjut. Jadi bagi Sobat SD yang baru bergabung, silahkan pelajari part sebelumnya agar lebih mudah dipahami.

Sebelumnya juga sesuai pembelajaran part 1 "Tahapan Membuat Aplikasi VBA Excel - Belajar VBA Excel Part 1", 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. Sobat SD 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.

ColumnHead True or False

  • .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 Sobat SD mengaturnya disini, otomatis pengaturan yang diproperties tidak berlaku dan hanya akan membaca pengaturan yang dibuat di code window.

Tampilkan data ke ListBox

3. Lanjut untuk menampikan secar 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.

Otomatis Tampilkan Data di ListBox


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.

Cara Kedua Menampilkan Data Ke ListBox

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 Sobat SD, demikian tutorial kali ini dan bila ingin melihat tutorial ini dalam bentuk video, silahkan berkunjung ke Channel Youtube Sobat SD. Semoga bermanfaat, Wassalam.


Post a Comment for "Cara Menampilkan Data Tersimpan Ke ListBox UserForm"