Page 1 of 1

สอบถามเรื่อง การสั่งรันมาโคร

Posted: Wed May 16, 2018 11:41 am
by sosadboy
ตอนนี้ผมใช้ปุ่มในการสั่งรันมาโคร ซึ่งตัวมาโครเป็นการกรองข้อมูลในตารางตามที่กำหนด ซึ่งมีการกรองข้อมูลหลายแบบ ทำให้ต้องสร้างปุ่มสั่งรันมาโครหลายปุ่มมาก ผมเลยอยากทราบว่าสามารถกำหนดให้มาโครรันตามค่าที่เปลี่ยนแปลงไปในเซลล์ๆ หนึ่งได้หรือไม่ครับ และเซลล์ที่ข้อมูลเปลี่ยนแปลงดังกล่าวผมสามารถทำให้อยู่ในรูปแบบของ Drop down list ได้หรือไม่ครับ

Re: สอบถามเรื่อง การสั่งรันมาโคร

Posted: Wed May 16, 2018 12:29 pm
by sosadboy
ได้แล้วครับ พอดีหาในเว็ปเจอ ตอนแรกไม่ได้เพราะไปสร้างโมดูลใหม่ ต้องไปคลิ๊กที่ชื่อ sheet ที่ต้องการถึงรันได้
ตัวอย่างโค๊ดครับเผื่อมีคนสนใจ

Code: Select all

Sub worksheet_change(ByVal target As Range)
Set target = Range("C1")        'เซลล์ที่มีการเปลี่ยนแปลงค่า(ทำเป็น drop down list)
If target.Value = "ตะกั่ว/ลูกแห/ยางทุ่น/ลูกลอย" Then        'ถ้าค่าตัวแปรเท่ากับ...
 Call ตะกั่วลูกแหยางทุ่นลูกลอย          'ให้รันมาโครชื่อ ...
End If
If target.Value = "ด้ายรุ่นหลอด" Then
 Call ด้ายหลอด
End If
If target.Value = "ด้ายรุ่นไจ(อวนใน)" Then
 Call ด้ายไจอวนใน
End If
If target.Value = "ด้ายรุ่นไจ(อวนนอก)" Then
 Call ด้ายไจอวนนอก
End If
If target.Value = "Dead Stock" Then
 Call deadstock
End If
If target.Value = "ดูทั้งหมด" Then
 Call รวมวัสดุทั้งหมด
End If
End Sub

Re: สอบถามเรื่อง การสั่งรันมาโคร

Posted: Wed May 16, 2018 12:59 pm
by sosadboy
ในทำนองเดียวกันถ้าเปลี่ยนจากdrop down list เป็น combo box สามารถทำได้หรือไม่ครับ

Re: สอบถามเรื่อง การสั่งรันมาโคร

Posted: Wed May 16, 2018 6:54 pm
by snasui
:D ทำได้ครับ ลองปรับ Code ดูก่อนติดตรงไหนค่อยแนบไฟล์นั้นพร้อม Code มาถามกันต่อครับ

Re: สอบถามเรื่อง การสั่งรันมาโคร

Posted: Thu May 17, 2018 12:00 pm
by sosadboy
ทำเองได้แล้วครับแต่ติดปัญหาตรงที่ ต้องการเพิ่ม ComboBox จากอันเดียวเป็น 2 อันต้องเพิ่มโค๊ดยังไงครับ เพราะผมลองเพิ่มแล้วมัน Error ตอนรันมาโครบางตัวครับ ส่วนนี่เป็นโค๊ดที่ใช้อยู่ครับ

Code: Select all

Private Sub Workbook_Open()                  'ส่วนนี้อยู่ใน Workbook
    With Worksheets("ตัดสรุป").ComboBox1
        .Clear
        .AddItem "ตัดสรุปอวนข่ายรุมใน"
        .AddItem "ตัดสรุปอวนข่ายรุมนอก"
        .AddItem "ตัดสรุปอวนมองปิว"
        .AddItem "ตัดสรุปอวนผ้าส่อน"
        .AddItem "ตัดสรุปอวนติดตะกั่ว"
    End With
End Sub

Code: Select all

Private Sub ComboBox1_Change()                'ส่วนนี้อยู่ใน Worksheets(ตัดสรุป)
    Application.Run Worksheets("ตัดสรุป").ComboBox1.Value
End Sub

Re: สอบถามเรื่อง การสั่งรันมาโคร

Posted: Thu May 17, 2018 7:14 pm
by snasui
:D ต้องการการเพิ่ม ComboBox จากอันเดียวเป็น 2 อันแล้วติดขัดตรง ComboBox อันไหน อย่างไรอธิบายประกอบด้วยครับ