Page 1 of 1

Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 9:04 am
by wisitsakbenz
เรียน อาจารย์

1. อยากได้เวลาเลือก WHC > Combobox 2 จะได้ผลตามไฟล์แนบ

Code: Select all

Private Sub ComboBox1_Change()
Dim u As Range
    
    ComboBox2.Clear
    
         With ComboBox2
        Select Case ComboBox1
                                
            Case "SUR"
                    For Each u In Sheet1.Range("C2:C4")
                                With Sheet2.ComboBox2
                                .AddItem u.Value
                                End With
                    Next u
            Case "WHC"
                    For Each u In Sheet1.Range("A2:A25", "B2:B7")
                                With Sheet2.ComboBox2
                                .AddItem u.Value
                                End With
                    Next u
        End Select
    End With
    
End Sub
2. อยากให้เวลาเพิ่มหรือลด List ของ Combobox > Range เปลี่ยนเองอัตโนมัติ

ต้องปรับสูตรอย่างไรครับ ขอบคุณครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 10:36 am
by snasui
:D ไม่เข้าใจว่าต้องการจะทำอะไร ช่วยอธิบายมาพอสังเขป

เมื่ออธิบายตามบรรทัดบนแล้ว จะต้องแจ้งสิ่งที่เป็นปัญหาต้อนนี้คืออะไร สิ่งที่ต้องการคืออะไร หากจะทดสอบให้เกิดปัญหาเดียวกันให้ทำสิ่งใด กี่ขั้นตอน อะไรบ้าง ฯลฯ จะได้เข้าถึงปัญหาโดยไวครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 10:45 am
by wisitsakbenz
เรียน อาจารย์ Snasui

เมื่อเลือก Cobobox1 เป็น WHC > เลือก Combobox2 ผลที่ได้มันจะไม่เอา list จาก Coulumn A จาก Sheet "Sheet1" ก่อน มันจะสลับ

WHC1
RR1
WHC2
RR2
WHC3
RR3
...
และจะมีการเว้นบรรทัด (ดังภาพ) ต้องการให้ List ของ Combobox2 เป็นดังไฟล์แนบ
ต้องปรับสูตรอย่างไรครับ ขอบคุณครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 11:02 am
by snasui
:D ตัวอย่างคำถามที่อ่านแล้วเข้าใจคือ

ต้องการเพิ่มรายการเข้าไปใน ComboBox2 จากการเลือก ComboBox1 ปัจจุบันบัญหาคือรายการที่เพิ่มเข้าไปใน ComboBox2 มีการเรียงรายการแบบสลับคอลัมน์แทนที่จะเรียงรายการไปทีละคอลัมน์ เช่น นำรายการในคอลัมน์ A มาเรียงให้หมดก่อนแล้วตามด้วยรายการในคอลัมน์ B เช่นนี้เป็นต้น

วิธีการปรับ Code คือ

ปรับ Statement ของการ Loop เป็น For Each u In Sheet1.Range("A2:A25,B2:B7") ครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 11:26 am
by wisitsakbenz
เรียน อาจารย์ Snasui

ได้แล้วครับ

2. อยากให้เวลาเพิ่มหรือลด List ของ Combobox ใน "Sheet1" > Range เปลี่ยนเองอัตโนมัติ

Code: Select all

Sheet1.Range("A2:A25,B2:B7")
ขอบคุณครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 12:32 pm
by snasui
:D ไม่เข้าใจ กรุณาอธิบายมาใหม่ครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 12:44 pm
by wisitsakbenz
เรียน อาจารย์ Snasui

ถ้าเพิ่ม WHC25,WHC26,WHC27,WHC28
RR7,RR8,RR9
TT4,TT5,TT6

ใน Sheet1 อยากให้

Case "SUR"
For Each u In Sheet1.Range("C2:C4") --> For Each u In Sheet1.Range("C2:C8")
.
.
.
Case "WHC"
For Each u In Sheet1.Range("A2:A25", "B2:B7") --> For Each u In Sheet1.Range("A2:A29", "B2:B10")
.
.
.
ไม่ต้องเข้ามาแก้ Code อาจารย์พอมีวิธีหรือไม่ครับ
ขอบคุณครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 3:20 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub ComboBox1_Change()
    Dim u As Range, r As Range
    
    ComboBox2.Clear
    
    With ComboBox2
        Select Case ComboBox1
            Case "SUR"
                With Sheet1
                    For Each u In .Range("C2", .Range("C" & .Rows.Count).End(xlUp))
                        With Sheet2.ComboBox2
                            .AddItem u.Value
                        End With
                    Next u
                End With
            Case "WHC"
                With Sheet1
                    For Each u In .Range("A2:B2")
                        For Each r In u.Resize(1000).SpecialCells(xlCellTypeConstants)
                            With Sheet2.ComboBox2
                                .AddItem r.Value
                            End With
                        Next r
                    Next u
                End With
        End Select
    End With
End Sub

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 3:34 pm
by wisitsakbenz
เรียน อาจารย์ Snasui

ถ้า Fixed Rows แค่ 30 Rows
ต้องปรับ Code อย่างไรครับ ขอบคุณครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 3:51 pm
by snasui
:D ลองปรับมาเอง ติดตรงไหนค่อยถามกันต่อ ใน Code ที่ตอบไปมันมีตัวเลขที่พอจะเดาได้ว่าให้ขยายไปถึงไหน น่าจะสังเกตได้ไม่ยากครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 3:59 pm
by wisitsakbenz
เรียน อาจารย์

ลองปรับแล้วยังติดอยู่ครับ
รบกวนอาจารย์ด้วยครับ ขอบคุณครับ

Code: Select all

Private Sub ComboBox1_Change()
    Dim u As Range, r As Range
    
    ComboBox2.Clear
    
    With ComboBox2
        Select Case ComboBox1
            Case "SUR"
                With Sheet1
                    For Each u In .Range("C2:C29", .Range("C" & .Rows.Count).End(xlUp))
                        With Sheet2.ComboBox2
                            .AddItem u.Value
                        End With
                    Next u
                End With
            Case "WHC"
                With Sheet1
                    For Each u In .Range("A2:A29,B2:B29")
                        For Each r In u.Resize(1000).SpecialCells(xlCellTypeConstants)
                            With Sheet2.ComboBox2
                                .AddItem r.Value
                            End With
                        Next r
                    Next u
                End With
        End Select
    End With
End Sub

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Wed Mar 06, 2024 7:15 pm
by snasui
:D ช่วยอธิบายว่าที่ผมปรับไปเดิมมีปัญหาอะไรถึงกลับมาแก้เป็นแบบนั้น ถ้าไม่มีก็ปรับให้กลับไปเป็นที่ผมเขียนให้ไป และไปแก้ตำแหน่งอื่น ไม่เช่นนั้นจะเกิดปัญหาเดิม การปรับแก้ต้องไม่นำปัญหาเดิมกลับมาครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Thu Mar 07, 2024 11:22 am
by wisitsakbenz
เรียน อาจารย์

ในการใช้งานจริงส่วนของ Row ที่ 31 เป็นต้นไป จะเป็น List ของ Combobox อื่นๆ ที่ไม่ได้ยกตัวอย่างครับ
ถ้าปรับหรือย้าย มันจะกระทบกับ Combobox อื่น ๆ ครับ
ขอบคุณครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Thu Mar 07, 2024 11:54 am
by snasui
wisitsakbenz wrote: Thu Mar 07, 2024 11:22 am ที่ 31 เป็นต้นไป จะเป็น List ของ Combobox อื่นๆ ที่ไม่ได้ยกตัวอย่าง
:D จะเป็นบรรทัดที่เท่าไรและมีอีกกี่บรรทัดก็ไม่ใช่ประเด็น ถ้าเข้าใจ Code ก็สามารถปรับใช้ได้ ที่สำคัญปรับใช้ง่ายมาก สงสัยหรือไม่เข้าใจบรรทัดไหนควรถามบรรทัดนั้นครับ

หากศึกษาแล้วไม่เข้าใจควรเปลี่ยนวิธีการออกแบบไม่ให้ข้อมูลซ้อน ๆ กัน ให้แยกเป็นคอลัมน์ Excel มีคอลัมน์ให้ใช้เป็นหมื่นคอลัมน์ครับ

Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ

Posted: Thu Mar 07, 2024 2:05 pm
by wisitsakbenz
เรียน อาจารย์ snasui

ลองศึกษาได้แล้วครับ ขอบคุณอาจารย์ที่แนะนำครับ
ขอบคุณครับ