
Lalu muncul sebuah pertanyaan sederhana, darimana daftar item yang terdapat dalam ListBox tersebut berasal?
Setidaknya ada dua jawaban untuk menjawab asal item dari daftar ListBox yakni bisa diisi secara manual atau ditulis langsung dalam baris kode Macro VBA dan bisa juga diisi sesuai dengan data-data yang terdapat dalam lembar kerja Microsoft Excel. Nah, untuk cara yang kedua bisa dimodifikasi sesuai dengan kebutuhan untuk mendapatkan informasi yang diinginkan.
Pada bagian ini excelive.com akan mengupas tuntas tentang beragam cara dalam mengisi daftar yang terdapat di dalam ListBox, tentunya dengan menggunakan Macro VBA.
Ok. langsung saja buka aplikasi Microsoft Excel dan segera aktifkan jendela Microsoft Visual Basic Editor yang bisa anda lakukan dengan cara menekan tombol pintas
Dalam jendela Microsoft Visual Basic Editor buat sebuah UserForm dan tempatkan sebuah ListBox didalamnya, seperti tampak dalam gambar berikut :
Dan untuk tutorial kali ini, kita akan menjalankan kode-kode Macro VBA agar secara otomatis dieksekusi ketika UserForm1 di buka, oleh karena itu maka Objek yang harus dipilih adalah UserForm sementara prosedurnya adalah Activate atau bisa juga memilih prosedur Initialize.
Cara yang paling sederhana dalam mengisi daftar item di ListBox adalah dengan cara menuliskannya secara manual di baris kode Macro VBA dengan menggunakan parameter AddItem seperti berikut :
ListBox1.AddItem "abc" ListBox1.AddItem "def" ListBox1.AddItem "ghi" ListBox1.AddItem "jkl"Baris kode di atas berfungsi untuk menambahkan 4 buah item di ListBox1, dan karena cara penulisan tersebut memiliki pengulangan untuk objek ListBox1, maka hal ini bisa disempurnakan dengan model syntax penulisan seperti berikut
With ListBox1 .AddItem "abc" .AddItem "def" .AddItem "ghi" .AddItem "jkl" End WithKedua model syntax penulisan kode di atas memiliki fungsi yang sama, yakni menambahkan item di dalam objek ListBox dengan cara ditulis secara manual.
Cara berikut ini adalah dengan menggunakan bantuan sebuah lembar kerja yang berisi data-data yang akan ditampilkan dalam daftar item di ListBox yang sudah ditentukan dan sifatnya tetap.
ListBox1.RowSource = "A1:A5"Baris kode di atas akan membaca data-data yang terdapat dalam lembar kerja dari sel A1 hingga sel A5 untuk kemudian di tampilkan dalam kotak ListBox
Sama seperti metode pengisian 2 yakni dengan menggunakan bantuan lembar kerja yang digunakan sebagai isi dari daftar yang terdapat dalam ListBox, akan tetapi untuk metode pengisian kali ini daftar tersebut sifatnya dinamis, artinya bahwa penambahan isi daftar ListBox akan secara otomatis berubah ketika data-data yang terdapat di lembar kerja mengalami penambahan juga.
Dan salah satu baris kode yang bisa digunakan untuk membuat isi daftar ListBox bersifat dinamis adalah seperti berikut :
Dim akhir As Variant akhir = Sheets("Sheet1").Range("a1").CurrentRegion.Rows.Count For x = 1 To akhir ListBox1.AddItem Cells(x, 1) NextBaris kode di atas, variabel akhir difungsikan untuk mengetahui baris akhir yang berisi data berdasarkan data-data yang tertulis dikolom A.
Ada beberapa cara lainnya dalam menentukan posisi baris terakhir yang berisi data, namun untuk tutorial ini saya menggunakan parameter CurrentRegion yang menurut saya lebih mudah penggunaannya.
Silahkan lihat disini untuk pembahasan CurrentRegion lebih lanjut
Metode pengisian daftar ListBox menggunakan parameter AddItem, namun kali ini item di ambil dari lembar kerja yang sudah ditentukan yakni dimulai dari sel A1 hingga sel terakhir yang berisi data, juga pengisiannya dikombinasikan dengan penggunaan fungsi Loop agar daftar di ListBox mengikuti perubahan atau penambahan yang terjadi di lembar kerja.
Untuk mengetahui tutorial penggunaan Loop, baca tutorial-tutorial berikut :
Solusi Handal Melakukan Pencarian
Kombinasi Fungsi Match dan Index
Mengenal Formula Pembulatan Angka
Konversi Angka ke Huruf
Metode pengisian daftar ListBox model ini merupakan kombinasi dari metode-metode di atas, akan tetapi dengan menambahkan sebuah kriteria tertentu agar daftar yang ditampilkan di ListBox sesuai dengan kriteria yang dimaksudkan.
Lihat tutorialnya disini
Jika anda memiliki kumpulan data-data dalam lembar kerja, dan kemudian anda ingin menampilkannya ke dalam jendela ListBox namun hanya ingin menampilkan data yang sifatnya unik (tidak dobel), maka anda bisa pelajari panduannya disini
Ok, sekarang kita akan mencoba mengisi ListBox namun berasal dari lembar lain. Dan untuk melakukan hal ini, maka pengisian ListBox dengan menggunakan syntax penulisan standar seperti yang metode-metode diatas - bisa dipastikan tidak akan berhasil. Dan solusinya adalah dengan menggunakan alternatif kode berikut:
Dim rng As Range Dim i As Long Set rng = Worksheets("Sheet2").Range("a1:a5") For i = 1 To 5 With Me.LB1 .AddItem rng(i, 1) End With Next iDari kode diatas saya mengasumsikan saat ini anda berada di posisi selain lembar kerja kedua (sheet2), sementara dilembar kerja ini (Lembar kerja / Sheet2) terdapat beberapa data-data dari sel A1 hingga A5 yang kesemuanya ingin anda tampikan di ListBox.
Dan jika anda cermati, metode pengisian daftar ListBox ini menggunakan syntax "AddItem" seperti yang dilakukan pada Metode 1, akan tetapi untuk setiap itemnya tidak ditulis atau di isi secara manual, melainkan menggunakan fungsi For..Next agar daftar dapat terisi secara otomatis.
Tidak ubahnya dengan cara sebelumnya, akan tetapi metode ini mengambil data-data di lembar kerja lain yang terdiri dari 2 (dua) kolom atau lebih. Berikut contoh lengkapnya:
Dim rng As Range Dim i As Long Set rng = Worksheets("Sheet2").Range("a1:B5") For i = 1 To 5 With Me.LB1 .AddItem rng(i, 1) .List(.ListCount - 1, 1) = rng(i, 2) End With Next i
Ingin mengotomatisasi daftar di ListBox dengan nama-nama bulan, dan anda hanya menampilkan nama beberapa bulan terakhir saja di dalamnya. Silahkan anda pelajari panduannya disini
Cara ini adalah cara yang paling praktis jika anda ingin mengisi daftar yang ada di dalam ListBox secara manual, yakni menggunakan metode Array seperti ini
ListBox1.List = Array("satu","dua","tiga","dst...")Selain untuk ListBox, tentu juga bisa digunakan untuk ComboBox Lho!...
Incoming Search Terms
Cara-cara mengisi daftar di ListBox Mengisi ListBox dengan cara manual
Menampilkan daftar di ListBox secara otomatis ketika diaktifkan
Mengisi ListBox berdasarkan data-data yang terdapat di lembar kerja lainnya
Mencegah ListBox agar tidak berisi data ganda
Mengisi Listbox dari data yang bersifat dinamis
Membuat Listbox agar otomatis berubah ketika data dirubah
Terimakasih sudah membaca
Tutorial: Berbagai Cara Mengisi Daftar ListBox
Labels: ListBox - Author: excelive
Tutorial: Berbagai Cara Mengisi Daftar ListBox
Labels: ListBox - Author: excelive
Masih mau belajar lagi !
Yuk, klik tautan berikut ini :