@Mr.P ...
Ada banyak cara untuk mengisi range data pada Worksheet ke dalam kontrol ListBox. Contoh sederhana untuk mengisi kontrol ListBox dari 1 kolom data:
Me.ListBox1.List = Sheet1.Range("A2:A101").Value
Notasi atau Keyword Me
dapat merupakan UserForm Object atau Worksheet Object, tergantung dimana kontrol ListBox1
diletakkan. Contoh lainnya untuk mengisi kontrol ListBox dari 2 kolom data:
With Me.ListBox1
.ColumnCount = 2
.ColumnWidths = "30;100"
.List = Sheet1.Range("A2:B101").Value
End With
Selain itu, data pada kontrol ListBox juga dapat dipopulasi melalui pengulangan (misalkan menggunakan fungsi FOR ... NEXT). Sehingga, untuk menyusun script pengisian data ke dalam kontrol ListBox yang sesuai dengan kebutuhan, tentunya harus diketahui bagaimana bentuk range sumber data dan bagaimana data akan diambil — misalkan saja jika data yang akan diambil harus memenuhi kondisi atau kriteria tertentu, maka proses pengisian data mungkin lebih tepat jika melalui proses pengulangan.
Sedangkan untuk membuat nomor acak, VBA mempunyai fungsi RND() yang dapat digunakan. Untuk menghasilkan nilai antara dua nilai, maka sintaksnya dapat berupa:
Variabel = NilaiMinimum + Rnd() * (NilaiMaksimum - NilaiMinimum)
misalnya:
lNum = CLng(666 + Rnd() * (999 - 666))
atau bisa juga menggunakan fungsi RANDBETWEEN pada objek WorksheetFunction:
lNum = WorksheetFunction.RandBetween(66, 99)
Script-script di atas hanyalah contoh dasarnya saja sesuai aturan baku sintaksnya. Implementasi sebenarnya akan bergantung kepada banyak hal. Saya pribadi tidak tahu kesulitan yang Anda maksud itu bagaimana, karena tidak ada lampiran contoh pekerjaan yang Anda kerjakan. Mudah-mudahan penjelasan di atas dapat membantu.
Demikian.