Page 1 of 1

นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Sun Sep 04, 2016 9:57 pm
by KITIPONG
เรียนอาจารย์และผู้รู้ทุกท่าน
ผมต้องการเขียน code ให้ combo box รับข้อมูลจาก cell เพื่อเข้าเป็นตัวเลือกใน combo box ครับ โดยจำนวณข้อมูลสามารถเปลี่ยนแปลงได้เช่น A-C,A-G เป็นต้น
Code ที่ผมเขียนไว้ประมาณนี้ครับ ยังไม่สามารถ run ได้ครับ

Code: Select all

Private Sub major_cbbox_DropButtonClick()
    Dim m  As Long
    Dim x  As String
    Do
    m = m + 1
    Loop Until Cells(m, 1) = ""
    m = Cells(Rows.Count, 1).End(xlUp).Row + 1
    x = Cells(m, 1).Value
    major_cbbox.List = x
End Sub
pic1.png
pic1.png (32.53 KiB) Viewed 186 times
Book1.xlsm
(21.95 KiB) Downloaded 41 times
ขอบคุณครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Mon Sep 05, 2016 7:31 pm
by snasui
:D ตัวอย่าง Code ครับ

Code: Select all

Private Sub major_cbbox_DropButtonClick()
    Dim m  As Long
    Dim x  As String
    Do
        m = m + 1
        'm = Cells(Rows.Count, 1).End(xlUp).Row + 1
        x = Cells(m, 1).Value
        major_cbbox.AddItem x
    Loop Until Cells(m, 1) = ""
End Sub

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Tue Sep 06, 2016 12:55 pm
by KITIPONG
ขอบคุณอาจารย์มากครับ สามารถใช้งานได้ตรงความต้องการ แต่ผมเจอปัญหาว่ามันจะขึ้นซ้ำเมื่อคลิกที่ combo block ในครั้งต่อมา พอจะมีวิธีแก้ไหมครับ
pic2.jpg
pic2.jpg (80.3 KiB) Viewed 171 times
ขอบคุณครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Tue Sep 06, 2016 7:09 pm
by snasui
:D ไม่ควรใช้ Event major_cbbox_DropButtonClick ในการเพิ่มรายการของ ConboBox เพราะมันจะเพิ่มรายการเมื่อมีการคลิก ควรจะเพิ่มรายการทีเดียวหรือเมื่อต้องการ Update เท่านั้น ปกติจะกำหนดให้แสดงรายการใน ComboBox ด้วย Event UserForm_Initialize หรืออื่นๆ ครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Thu Sep 08, 2016 9:01 pm
by KITIPONG
ขอบคุณอาจารย์มากครับ ตอนนี้สามารถใช้ได้ตามต้องการแล้วครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Sun Sep 11, 2016 12:38 pm
by KITIPONG
สอบถามเพิ่มเติมนะครับ คือผม เพิ่ม combo box ไปอีก 1 box เพื่อใช้งานเหมือนกับอันแรก แต่ไม่สามารถใช้ได้ครับ
[img]
pic3.png
pic3.png (63.64 KiB) Viewed 138 times
[/img]

โดยเขียน code เพิ่มไปดังนี้ครับ

Code: Select all

Private Sub UserForm_Initialize()
    Dim a  As Long
    Dim b  As String
    If major_cbbox2 = "" Then
    Do
        a = a + 1
        b = Cells(a, 2).Value
        If b <> "" Then
        major_cbbox2.AddItem b
         End If
    Loop Until Cells(a, 2) = ""
    End If
End Sub
แต่ไม่สามารถ run ได้ครับ
Book1 -Rev3.xlsm
(22.05 KiB) Downloaded 22 times
ขอบคุณครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Sun Sep 11, 2016 2:10 pm
by snasui
:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub UserForm_Initialize()
    Dim m  As Long
    Dim x  As String
    Dim b As Long
    If major_cbbox = "" Then
    Do
        m = m + 1
        x = Cells(m, 1).Value
        b = Cells(m, 2).Value
        If x <> "" Then
            major_cbbox.AddItem x
            major_cbbox2.AddItem b
        End If
    Loop Until Cells(m, 1) = ""
    End If
End Sub

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Sun Sep 11, 2016 4:16 pm
by KITIPONG
เรียนอาจารย์ ครับ ผมลอง code พบว่า เมื่อ จำนวณ column 1,2 ไม่ทำกัน จะเกิดตัวเลขที่ 0 ที่ไม่ได้ต้องการขึ้นมาครับ พอจะมีวิธีแก้ไขไหมครับ
[img]
pic4.jpg
pic4.jpg (125.22 KiB) Viewed 132 times
[/img]

ขอบคุณครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Sun Sep 11, 2016 4:21 pm
by snasui
:D สามารถใช้ If เข้ามาช่วยได้ โดยตรวจสอบว่ามีข้อมูลหรือไม่ หากมีจึงค่อย Add เข้าไป ลองปรับปรุงมาเองดูก่อน ติดตรงไหนค่อยถามกันต่อครับ

Re: นำข้อมูลจาก cell เข้า combo box (VBA)

Posted: Sun Sep 11, 2016 9:16 pm
by KITIPONG
เรียน อาจารย์
ผมใช้ if ช่วยตามที่อาจารย์แนะนำ ได้ผลตามที่ต้องการแล้วครับ ขอบคุณมากครับ

ขอแสดงความนับถือ