menambahkan kombobox

  1. 4 tahun lalu

    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.

  2. Caton

    8 Okt 2019 Terverifikasi Indonesia + 20.101 Poin

    @bintang GP ...

    Pada diskusi di sini ada contoh yang bisa dipelajari... Silahkan dicoba saja dulu. Jika ada kendala, diskusikan saja kembali...

    Demikian.

  3. saya memiliki kendala tidak bisa mengambil isi kombobox yg berada pada sheet lain....

    mohon bantuannya

  4. Caton

    17 Okt 2019 Terverifikasi Indonesia + 20.101 Poin

    @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.

  5. datanya yang berada di worksheet

  6. Caton

    17 Okt 2019 Terverifikasi Indonesia + 20.101 Poin

    @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.

  7. @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....

  8. Caton

    22 Okt 2019 Terverifikasi Indonesia + 20.101 Poin

    @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.

  9. terima kasih atas penjelasannya @Caton

  10. @Caton saya mau tanya kenapa form combobox yang saya buat kok gk mau clear ya.... padahal saya sudah mengikuti kode yang @Caton berikan di contoh ......mohon penjelasannya.

  11. Caton

    4 Nov 2019 Terverifikasi Indonesia + 20.101 Poin

    @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 :

    property.png

    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.

  12. Terimakasih atas bantuannya @Caton.

 

atau Mendaftar untuk ikut berdiskusi!