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
ไม่เข้าใจว่าต้องการจะทำอะไร ช่วยอธิบายมาพอสังเขป
เมื่ออธิบายตามบรรทัดบนแล้ว จะต้องแจ้งสิ่งที่เป็นปัญหาต้อนนี้คืออะไร สิ่งที่ต้องการคืออะไร หากจะทดสอบให้เกิดปัญหาเดียวกันให้ทำสิ่งใด กี่ขั้นตอน อะไรบ้าง ฯลฯ จะได้เข้าถึงปัญหาโดยไวครับ
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
ตัวอย่างคำถามที่อ่านแล้วเข้าใจคือ
ต้องการเพิ่มรายการเข้าไปใน 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 เปลี่ยนเองอัตโนมัติ
ขอบคุณครับ
Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ
Posted: Wed Mar 06, 2024 12:32 pm
by snasui
ไม่เข้าใจ กรุณาอธิบายมาใหม่ครับ
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
ตัวอย่างการปรับ 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
ลองปรับมาเอง ติดตรงไหนค่อยถามกันต่อ ใน 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
ช่วยอธิบายว่าที่ผมปรับไปเดิมมีปัญหาอะไรถึงกลับมาแก้เป็นแบบนั้น ถ้าไม่มีก็ปรับให้กลับไปเป็นที่ผมเขียนให้ไป และไปแก้ตำแหน่งอื่น ไม่เช่นนั้นจะเกิดปัญหาเดิม การปรับแก้ต้องไม่นำปัญหาเดิมกลับมาครับ
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 อื่นๆ ที่ไม่ได้ยกตัวอย่าง
จะเป็นบรรทัดที่เท่าไรและมีอีกกี่บรรทัดก็ไม่ใช่ประเด็น ถ้าเข้าใจ Code ก็สามารถปรับใช้ได้ ที่สำคัญปรับใช้ง่ายมาก สงสัยหรือไม่เข้าใจบรรทัดไหนควรถามบรรทัดนั้นครับ
หากศึกษาแล้วไม่เข้าใจควรเปลี่ยนวิธีการออกแบบไม่ให้ข้อมูลซ้อน ๆ กัน ให้แยกเป็นคอลัมน์ Excel มีคอลัมน์ให้ใช้เป็นหมื่นคอลัมน์ครับ
Re: Combobx : อยากให้ Combobox แสดงผลตามไฟล์แนบ
Posted: Thu Mar 07, 2024 2:05 pm
by wisitsakbenz
เรียน อาจารย์ snasui
ลองศึกษาได้แล้วครับ ขอบคุณอาจารย์ที่แนะนำครับ
ขอบคุณครับ