Page 1 of 1
Macro : Combobox
Posted: Mon Oct 28, 2019 9:05 am
by wisitsakbenz
สอบถามครับ ถ้าอยากเพิ่ม list ใน Combobox แต่ละอัน จะต้องแอดทีละอันมันเสียเวลา
ในกรณีที่ต้อง add list เยอะๆ อาจารย์พอมีคำแนะนำหรือไม่ครับ ขอบคุณครับ
หมายเหตุ : Template และ Doctor อ้างอิงจากการเลือก Dept
Re: Macro : Combobox
Posted: Mon Oct 28, 2019 8:15 pm
by snasui

ตัวอย่างการปรับ Code ครับ
Code: Select all
Private Sub Workbook_Open()
Dim r As Range
'Clear ComboBox1 Items
Call Clear_ComboBox
'Add Items to ComboBox1 in Sheet1 while opening workbook
For Each r In Sheet1.Range("n7:n16")
With Sheet1.ComboBox1
.AddItem r.Value
End With
Next r
End Sub
Sub Clear_ComboBox()
Application.EnableEvents = False
'Clear ComboBox & TextBox data
With Sheet1
.ComboBox1.Clear
.ComboBox2.Clear
End With
Application.EnableEvents = True
End Sub
Re: Macro : Combobox
Posted: Tue Oct 29, 2019 8:18 am
by wisitsakbenz
ได้แล้วครับอาจารย์ snasui ขอบคุณมากครับ
Re: Macro : Combobox
Posted: Tue Oct 29, 2019 9:31 am
by wisitsakbenz
สอบถามเพิ่มเติมครับ
ถ้า list เมนู อยู่ใน sheet2 ต้องปรับ Code อย่างไรครับ ขอบคุณครับ
Re: Macro : Combobox
Posted: Tue Oct 29, 2019 10:01 am
by puriwutpokin
ปรับเป็น
Code: Select all
Private Sub Workbook_Open()
Dim r As Range
'Clear ComboBox1 Items
Call Clear_ComboBox
'Add Items to ComboBox1 in Sheet1 while opening workbook
For Each r In Sheet2.Range("f4:f13")
With Sheet1.ComboBox1
.AddItem r.Value
End With
Next r
End Sub
Code: Select all
'Get Items to ComboBox2 based on ComboBox1 selection
Private Sub ComboBox1_Change()
'Variable Declaration
Dim s As Range
'Clear Combobox2 before loading items
ComboBox2.Clear
With ComboBox2
Select Case ComboBox1
Case "A"
For Each s In Sheet2.Range("h5:h15")
With Sheet1.ComboBox2
.AddItem s.Value
End With
Next s
Case "B"
For Each s In Sheet2.Range("i5:i14")
With Sheet1.ComboBox2
.AddItem s.Value
End With
Next s
Case "C"
For Each s In Sheet2.Range("j5:j14")
With Sheet1.ComboBox2
.AddItem s.Value
End With
Next s
Case "D"
For Each s In Sheet2.Range("k5:k14")
With Sheet1.ComboBox2
.AddItem s.Value
End With
Next s
End Select
End With
ComboBox3.Clear
With ComboBox3
Select Case ComboBox1
Case "A"
For Each s In Sheet2.Range("c19:c25")
With Sheet1.ComboBox3
.AddItem s.Value
End With
Next s
Case "B"
For Each s In Sheet2.Range("d19:d25")
With Sheet1.ComboBox3
.AddItem s.Value
End With
Next s
Case "C"
For Each s In Sheet2.Range("e19:e25")
With Sheet1.ComboBox3
.AddItem s.Value
End With
Next s
Case "D"
For Each s In Sheet2.Range("f19:f25")
With Sheet1.ComboBox3
.AddItem s.Value
End With
Next s
End Select
End With
End Sub
Re: Macro : Combobox
Posted: Tue Oct 29, 2019 10:25 am
by wisitsakbenz
ได้แล้วครับอาจารย์ snasui ขอบคุณมากครับ