Tampilan data brdasrkan combo box

  1. 6 minggu lalu

    ass.
    mas @Caton sy ingin tny bgaimn mnampilkn data brdasarkan pilihan data dicombo box ke cell yg tlh ditentukn dn satunya lg ke text box. setelh data ditmpilkn data akn dipilih melalui option button dn hasil pilihnnya akn ditmpilkn disheet 2. terimakasih, utk file terlampir

  2. Caton

    Okt 4 Terverifikasi Indonesia + 12.498 Poin

    @MUSA ... bgaimn mnampilkn data brdasarkan pilihan data dicombo box ke cell yg tlh ditentukn dn satunya lg ke text box. setelh data ditmpilkn data akn dipilih melalui option button dn hasil pilihnnya akn ditmpilkn disheet 2 ...

    Karena biasanya mas @Musa yang selalu ngasih soal ke saya, bagaimana kalau sekarang saya yang balik ngasih soal ke mas @Musa ... hehe ... :D

    Pada file terlampir, saya buat 2 sheet, sheet PILIHAN dan sheet TES. Pada sheet PILIHAN, sudah saya buatkan beberapa kontrol menggunakan ActiveX Control dan Form Control, yang intinya mirip dengan soal yang mas tanyakan. Pada modul tersebut, script-sciptnya sudah bisa digunakan, hanya saja tidak sepenuhnya saya susun seperti keinginan mas @Musa.

    Nah soal dari saya, coba mas @Musa susun kembali script pada modul Sheet4 (PILIHAN) sesuai dengan yang mas inginkan. Ambil script mana saja yang sekiranya cocok untuk dirakit kembali di modul Sheet1. Oia, mohon jangan salah paham. Bukannya saya tidak mau memberikan solusi jadinya. Anggap saja ini latihan memahami script VBA.

    Kalau masih terkendala atau belum juga berhasil, silahkan diskusikan kembali ... :)

    Demikian.

  3. oke, terimaksih bnyk mas@Caton, sy mau pljri dulu ...

  4. Di sunting 6 minggu lalu oleh MUSA

    ass.
    mas @caton terimakasih ats file td, sy sdh brusha namun ad bbrp hl yng agk sulit sy pahami, dr file sbelumnya ad sdikit pnambahn data dg formt lbih simpel, ad bbrp hl yg hndk sy tnykan :

    1. bisa nggak utk caption Option button 1 dan 2 kita ganti dg kata "Pilih" namun sifatnya tetap dn tidak berubah mski data pada textbox berubah.
    2. dalam ComboBox ada 5 Pilihn no.1 adalh Kertas Label yg mmiliki 2 pilhn Panda dn Koala, No.2-4 Option button nggk ad pilihn, No.5 Kartu Buku dg 2 Pilihn Depan dn Belakang namun pd sel acuan cetak pd Sheet1.[H4] terisi pilihn : ComboBox No. 1 atau 5 sesuai dg option button yg kita pilih, No. 2-4 berdsrkn tampilan data pilihn pd combobox.
    3. biasanya kn mas, kalau dlm sehri2 yg namanya data selalu dinamis, ad pengurangn mngkin ad penambhn data. pd kode vba bg. mn saja yg hndk kita edit bila hndk menambhkn atau mngurangi pilihn data pd combobox. terimakasih, file yg sy kerjkn trlmpr
  5. Caton

    Okt 5 Terverifikasi Indonesia + 12.498 Poin

    @MUSA ...

    [1]. Bisa. Ubah captionnya secara manual menjadi Pilih, kemudian modifikasi script pada prosedur Sub cboPilihanB_Change (lihat poin 2).

    [2]. Ganti script pada prosedur Sub cboPilihanB_Change menjadi:

    Private Sub cboPilihanB_Change()
        If cboPilihanB.ListIndex <> m_lIndeksPilihan Then
            Dim xObject As OLEObject
            Dim bEnabled As Boolean
            
            With cboPilihanB
                bEnabled = (InStr(1, "04", .ListIndex) > 0)
                Me.OLEObjects("optDataX").Object.Enabled = bEnabled
                Me.OLEObjects("optDataY").Object.Enabled = bEnabled
                Me.OLEObjects("txtDataX").Object.Enabled = bEnabled
                Me.OLEObjects("txtDataY").Object.Enabled = bEnabled
                If InStr(1, "04", .ListIndex) Then
                    If .ListIndex = 0 Then
                        Me.OLEObjects("txtDataX").Object.Text = "KERTAS PANDA"
                        Me.OLEObjects("txtDataY").Object.Text = "KERTAS KOALA"
                    Else
                        Me.OLEObjects("txtDataX").Object.Text = "KARTU DEPAN"
                        Me.OLEObjects("txtDataY").Object.Text = "KARTU BELAKANG"
                    End If
                    
                    If Me.OLEObjects("optDataX").Object.Value Then
                        Sheet1.[H4] = Me.OLEObjects("txtDataX").Object.Text
                    Else
                        Sheet1.[H4] = Me.OLEObjects("txtDataY").Object.Text
                    End If
                Else
                    Me.OLEObjects("txtDataX").Object.Text = vbNullString
                    Me.OLEObjects("txtDataY").Object.Text = vbNullString
                    Sheet1.[H4] = .List(.ListIndex)
                End If
            End With
            m_lIndeksPilihan = cboPilihanB.ListIndex
        End If
    End Sub

    Untuk mengakomodir pilihan OptionButton, ubah prosedur Sub OptionIndex menjadi:

    Private Sub OptionIndex(Index As Long)
        If InStr(1, "04", cboPilihanB.ListIndex) Then
            Sheet1.[H4] = Choose(Index, txtDataX.Text, txtDataY.Text)
        Else
            Sheet1.[H4] = vbNullString
        End If
    End Sub

    [3]. Tergantung bentuk perubahannya. Jika perubahan data yang dimaksud adalah daftar pilihan pada ComboBox, maka kuncinya ada pada script:

    InStr(1, "04", .ListIndex)

    dimana notasi 04 merupakan indek pilihan dari ComboBox — indeks item pada kontrol ComboBox standarnya dimulai dari indeks 0, jadi untuk pilihan ke-1, indeksnya adalah 0. Jadi jika ada penambahan data, misalkan pilihan ke-6 yang masuk kelompok pilihan berganda (OptionButton), maka scriptnya diubah menjadi:

    InStr(1, "046", .ListIndex)

    dan untuk mengakomodir pilihan, maka script untuk menetukan proses pilihan dari ComboBox juga harus diubah:

    If InStr(1, "046", .ListIndex) Then
        If .ListIndex = 0 Then
            ...
        ElseIf .ListIndex = 4 Then
            ...
        Else
            ...
        End If
    Else
        ...
    End If

    atau jika menggunakan blok SELECT ... END SELECT, ± menjadi:

    If InStr(1, "046", .ListIndex) Then
        Select Case .ListIndex
            Case 0:
                ...
            Case 4:
                ...
            Case 6:
                ...
        End Select
    Else
        ...
    End If

    Sebaiknya, pilihan ComboBox yang serupa digabungkan (didekatkan) indeksnya. Misal pilihan KERTAS LABEL dan KARTU BUKU dijadikan pilihan ke-1 dan ke-2 atau ke-4 dan ke-5.

    Demikian.

  6. Di sunting 6 minggu lalu oleh MUSA

    Option Explicit Private Const SHEETCETAK As String = "Sheet3|Sheet4|Sheet7|Sheet9|Sheet10" Public Sub Preview_CetakmyFile() Call OpsiCetak(1) End Sub Public Sub CetakmyFile() Call OpsiCetak(2) End Sub Private Sub OpsiCetak(Mode As Long) Dim sItem As String, sAddr As String, sTemp As String Dim lIdx As Long, lX As Long, lRow As Long, lPages As Long Dim lFrIdx As Long, lToIdx As Long, lCopies As Long Dim bValid As Boolean, bAllPages As Boolean bAllPages = False If Len(Sheet1.[J2]) * Len(Sheet1.[J4]) Then bValid = True bValid = bValid And (IsNumeric(Sheet1.[J2]) And IsNumeric(Sheet1.[J4])) If Not bValid Then MsgBox "Proses Cetak Tidak Dapat Dilakukan, Silahkan Periksa Halaman Pada Cell J2 or J4!", vbCritical, vbOKOnly Exit Sub Else lFrIdx = Val(Sheet1.[J2]) lToIdx = Val(Sheet1.[J4]) lCopies = Val(Sheet1.[J6]) If (lFrIdx = 0 Or lToIdx = 0) Then MsgBox "Silahkan Periksa cell Dari atau Sampai, Nilai Cell Harus Lebih Dari Nol!", vbExclamation Or vbOKOnly Exit Sub End If End If Else bAllPages = True End If If Len(Sheet1.[L6]) Then sItem = UCase$(Sheet1.[L6]) If InStr(1, SHEETCETAK, sItem) Then lIdx = WorksheetFunction.Match(sItem, Split(SHEETCETAK, "|"), 0) If lIdx < 3 Then sAddr = WorksheetFunction.Index(Split("A1:J34|L36:V69", "|"), lIdx) If Mode = 1 Then Sheet3.Range(sAddr).PrintPreview Else lCopies = Val(Sheet1.[J6]) Sheet3.Range(sAddr).PrintOut Copies:=IIf(lCopies = 0, 0, lCopies) End If End If End If End If ...... 'bingung cara meneruskannya ? End Sub
    maaf mas @Caton ya dari kode sebelumnya karena saya pemula dan kebetulan ada sedikit penambahan data, agk sulit saya pahami, itulah mas saya ingin belajar brtahap minta sedikit waktu. utk kode pencetakan file yg saya tulis juga brdasar dari kode sebelum cuma saya bingung cara meneruskan, utk sheet3 dan sheet9 ada 2 range ,password :1234... terimakasih.

  7. 5 minggu lalu

    Caton

    Okt 8 Terverifikasi Indonesia + 12.498 Poin

    @MUSA ... cuma saya bingung cara meneruskan ...

    Maaf, saya teruskan diskusinya melalui PM saja ya mas @Musa.

    Demikian.

 

atau Mendaftar untuk ikut berdiskusi!