Page 1 of 1

ComboBox selection

Posted: Mon Jun 14, 2021 2:59 pm
by liveday
เรียนอาจารย์ทุกท่าน
ผมได้ทำ ComboBox selection ระหว่าง ComboBox5 กับ ComboBox6 แต่ว่าไม่ขึ้นตามต้องการครับ
ComboBox5 ขึ้นข้อมูลแต่ไม่สามารถเลือกได้
ComboBox6 ขึ้นข้อมูล แต่ไม่ครบครับ
ที่ Sheet1 - Commandbuton1 - Form_Model - Combobox5
ComboBox5 ตัวเลือกจะมี LEATHER Sheet8 L:L กับ FABRIC Sheet8 N:N ครับ
ComboBox6 จะอ้างอิงจาก LEather กับ Fabric ครับ โดยแยกเป็น 2 กลุ่ม
Code ตามด้านล่างครับ

Code: Select all

Private Sub ComboBox5_Change()
If ComboBox5 = "" Then
    ComboBox5 = vbNullString: ComboBox6.Enabled = True
Else
    Dim index As Integer
    index = ComboBox5.ListIndex
Select Case index
    Case Is = 0
   '    ComboBox6.Value = "_LEATHER"
   'Call LeatherA
   Me.ComboBox6.RowSource = "_LEATHER"
        ComboBox6.Enabled = False
    Case Is = 1
     '   ComboBox6.Value = "_FABRIC"
       Me.ComboBox6.RowSource = "_FABRIC"
        ComboBox6.Enabled = False
End Select
End If
'End If
End Sub

Code: Select all

Private Sub UserForm_Activate()
    On Error Resume Next
    Dim MODEL, Size, COLOR, Paticular, Feather As String
    MODEL = Range("Model_Id").Address                          'Cuslist Name manage
    ComboBox1.RowSource = "MODEL!" & MODEL
        Size = Range("Size_ID").Address                          'Size_ID Name manage
    ComboBox6.RowSource = "Choice!" & Choice
             Paticular = Range("_LEATHER").Address                          '_LEATHER Name manage
 ComboBox6.RowSource = "Choice!" & Paticular
      Feather = Range("_FABRIC").Address                          '_FABRIC Name manage
ComboBox6.RowSource = "Choice!" & Feather
 '    ComboBox5.AddItem "LEATHER"
 '   ComboBox5.AddItem "FABRIC"


     Me.ComboBox8.RowSource = "_Paticular"
     With ComboBox5
        .AddItem "LEATHER"
        .AddItem "FABRIC"
        End With
        With ComboBox6
     Me.ComboBox6.RowSource = "_Paticular"
     End With
     'ComboBox5.AddItem ""FABRIC", "LEATHER"
End Sub
จะต้องแก้ไขสูตรอย่างไรครับ

Re: ComboBox selection

Posted: Mon Jun 14, 2021 6:43 pm
by snasui
:D แก้ไข Range Name _LEATHERโดยปรับสูตรเป็น

=OFFSET(Choice!$L$2,0,0,MATCH(CHAR(255),Choice!$L$2:$L$65536))

ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub ComboBox5_Change()
    If ComboBox5 = "" Then
        ComboBox6.Enabled = False
    Else
        Dim index As Integer
        index = ComboBox5.ListIndex
        Select Case index
            Case Is = 0
                '    ComboBox6.Value = "_LEATHER"
                'Call LeatherA
                Me.ComboBox6.RowSource = "_LEATHER"
                ComboBox6.Enabled = True
            Case Is = 1
                '   ComboBox6.Value = "_FABRIC"
                Me.ComboBox6.RowSource = "_FABRIC"
                ComboBox6.Enabled = True
        End Select
    End If
    'End If
End Sub

Re: ComboBox selection

Posted: Tue Jun 15, 2021 10:23 am
by liveday
ได้ตามต้องการครับ ขอบคุณมากครับ