permisi gan......
saya mau tanya...kalo kita mau buat 2 kombobox dalam satu userform gimana ya gan.........dan isi kombobox tersebut kita ambil dari worksheet.....
mohon bantuannya...
terima kasih.
permisi gan......
saya mau tanya...kalo kita mau buat 2 kombobox dalam satu userform gimana ya gan.........dan isi kombobox tersebut kita ambil dari worksheet.....
mohon bantuannya...
terima kasih.
@bintang GP ...
Pada diskusi di sini ada contoh yang bisa dipelajari... Silahkan dicoba saja dulu. Jika ada kendala, diskusikan saja kembali...
Demikian.
saya memiliki kendala tidak bisa mengambil isi kombobox yg berada pada sheet lain....
mohon bantuannya
@bintang GP ...
... saya memiliki kendala tidak bisa mengambil isi kombobox yg berada pada sheet lain...
ComboBox-nya diletakkan di Worksheet? Atau datanya yang berada di Worksheet berbeda? Coba lampirkan saja contoh file yang dimaksud agar bisa dipelajari dan dicarikan solusinya...
Demikian.
datanya yang berada di worksheet
@bintang GP ...
Yang saya pahami, Anda mau mengambil data dari sheet Sheet2 dan memasukkan data-data tersebut ke dalam ComboBox terkait. Dari contoh yang Anda berikan, saya asumsikan data pada range A2:A22 akan dimasukkan ke dalam kontrol ComboBox2 dan data pada range B2:B8 ke dalam kontrol ComboBox3.
Sebenarnya, untuk memasukkan data dari Worksheet ke salah satu kontrol di UserForm, Anda sudah benar dengan memanfaatkan prosedur Sub UserForm_Initilize(). Jangan gunakan prosedur Sub ComboBox2_Change() untuk kembali menginisialisasi data karena dapat menyebabkan pengulangan terus menerus (kecuali memang ada perbedaan isi yang harus digantikan).
Contoh terlampir merupakan revisi dari script yang Anda buatkan. Mudah-mudahan sesuai.
Demikian.
@Caton @bintang GP ...
Yang saya pahami, Anda mau mengambil data dari sheet Sheet2 dan memasukkan data-data tersebut ke dalam ComboBox terkait. Dari contoh yang Anda berikan, saya asumsikan data pada range A2:A22 akan dimasukkan ke dalam kontrol ComboBox2 dan data pada range B2:B8 ke dalam kontrol ComboBox3.
Sebenarnya, untuk memasukkan data dari Worksheet ke salah satu kontrol di UserForm, Anda sudah benar dengan memanfaatkan prosedur Sub UserForm_Initilize(). Jangan gunakan prosedur Sub ComboBox2_Change() untuk kembali menginisialisasi data karena dapat menyebabkan pengulangan terus menerus (kecuali memang ada perbedaan isi yang harus digantikan).
Contoh terlampir merupakan revisi dari script yang Anda buatkan. Mudah-mudahan sesuai.
Demikian.
sebelumnya terima kasih atas petunjuknya@Caton...
kalo saya mau kombobox1 dan kombobox2 itu saling ter hubung gimana ya......
contoh combobox1 baris A2, langsung automatis combobox2 nya milih baris B2 .
mohon bantuannya....
@bintang GP ...
... kalo saya mau kombobox1 dan kombobox2 itu saling ter hubung gimana ya....
Manfaatkan Event Procedure Sub ComboBox_Change dari setiap ComboBox.
Contohnya, kita asumsikan pada UserForm ada 2 ComboBox yang akan saling terkait. Masing-masing diberi nama cboSubCode dan cboItem. Yang diinginkan, jika pengguna memilih salah satu item dari salah satu ComboBox tersebut (misalkan pada cboSubCode), maka ComboBox yang satunya (misalkan cboItem) akan menampilkan item terkait. Maka, dengan memanfaatkan Event Procedure Sub ComboBox_Change dari masing-masing ComboBox, dapat disusun script seperti berikut:
... Private Sub cboItem_Change() cboSubCode.ListIndex = cboItem.ListIndex End Sub Private Sub cboSubCode_Change() cboItem.ListIndex = cboSubCode.ListIndex End Sub ...
Itu script intinya. Pada file terlampir, saya berikan 2 contoh. Perbedaan kedua UserForm ada pada proses inisialisasinya. UserForm frmContohA akan mengisi kontrol ComboBox dengan data yang ada tanpa menguji apakah ada duplikasi pada data. Sedangkan pada UserForm frmContohB akan mengisi kontrol ComboBox dengan data tanpa duplikasi.
Demikian.
terima kasih atas penjelasannya @Caton
@bintang GP ...
Properti Style dari ComboBox tersebut diatur menjadi fmStyleDropDownList. Solusinya ada 2 cara. Cara pertama atur properti Style dari ComboBox tersebut menjadi fmStyleDropDownCombo pada saat Design Mode :
Dan untuk menghindari Error, ubah script di atas menjadi :
... Private Sub cboItem_Change() If Not m_bInitialize Then If cboItem.ListIndex > -1 Then cboSubCode.ListIndex = cboItem.ListIndex Else cboSubCode.Value = vbNullString End If End If End Sub Private Sub cboSubCode_Change() If Not m_bInitialize Then If cboSubCode.ListIndex > -1 Then cboItem.ListIndex = cboSubCode.ListIndex Else cboItem.Value = "" End If End If End Sub ...
Cara kedua, property Style dari ComboBox tersebut tetap diatur menjadi fmStyleDropDownList. Perubahan dilakukan hanya pada script, yakni pada saat inisialisasi:
Private Sub UserForm_Initialize() ... With Sheet4 lRow = .Range("A10000").End(xlUp).Row For Each xlCell In .Range("A2:A" & lRow) If Not xDic.Exists(xlCell.Value) Then xDic.Add xlCell.Value, xlCell.Row End If Next cboItem.Clear cboSubCode.Clear For Each xKey In xDic.Keys cboSubCode.AddItem xKey cboItem.AddItem .Cells(xDic(xKey), "B") Next '+-- Tambahkan 2 baris berikut! cboItem.AddItem "", 0 cboSubCode.AddItem "", 0 cboItem.ListIndex = 0 cboSubCode.ListIndex = 0 End With ... End Sub
dan pada saat tombol SAVE diklik :
Private Sub CMDSAVE_Click() ... '+-- Tambahkan baris ini. cboItem.ListIndex = 0 ... End Sub
Perbedaan pengaturan properti Style dari ComboBox tersebut memiliki kelebihan dan kekurangan masing-masing.
Demikian.
Terimakasih atas bantuannya @Caton.