:!: โปรดทราบ Image
    1. กรุณาอ่านกฎการใช้บอร์ด (Forum rules) ในตำแหน่งด้านบนของแต่ละบอร์ดครับ Image
    2. การสมัครสมาชิกเพื่อโพสต์คำถาม ดาวน์โหลดไฟล์แนบไปศึกษา ทำตามขั้นตอนด้านล่างครับ
      1. สมัครสมาชิก ดูขั้นตอนตาม Link นี้ครับ => สมัครสมาชิก กรณีลืมรหัสผ่านสามารถรับรหัสใหม่ได้ที่นี่ครับ => Reset รหัสผ่านImage
      2. Login เข้าระบบโดยคลิก Login ตรงมุมขวาบนของหน้านี้ Image กรณีมีปัญหาในการเข้าใช้งาน คลิก Link นี้เพื่อแจ้งผู้ดูแลระบบครับ => ติดต่อผู้ดูแลระบบ
    3. เมื่อ Login แล้วสามารถกำหนดการตั้งค่าส่วนตัว เช่นตั้งค่าภาษาเป็นไทยหรืออังกฤษได้ที่ Link นี้ครับ => ตั้งค่าส่วนตัว Image
    4. วิธีการตั้งและตอบกระทู้ดูได้ที่ Link นี้ครับ => วิธีการตั้งและตอบกระทู้ Image
    5. การจัดรูปแบบตัวอักษรด้วย bbcode ในช่องแสดงความคิดเห็นดูได้ที่ Link นี้ครับ => จัดรูปแบบตัวอักษร และสามารถกำหนดขนาดตัวอักษรใน Browser ได้ที่นี่ครับ ==> กำหนดขนาดตัวอักษรใน Browser Image

การใช้ Data Validation กับ combo box(Active X)

ฟอรั่มถาม-ตอบปัญหาการใช้งาน MS Excel and VBA
Forum rules
  1. ไม่อนุญาตให้ใช้ภาษาแชทในการถาม-ตอบปัญหา ไม่ใช้คำว่า "คับ" หรือ "อ่ะครับ" แทนคำว่า "ครับ" ไม่ใช้คำว่า "เด๋ว" แทนคำว่า "เดี๋ยว" เป็นต้น
  2. ห้ามถามโดยระบุชื่อผู้ตอบ ต้องตั้งชื่อกระทู้ให้สื่อถึงปัญหาที่จะถาม ไม่ตั้งชื่อว่า ช่วยด้วยครับ, มีปัญหามาปรึกษาครับ เป็นต้น
  3. อธิบายปัญหาและระบุคำตอบที่ต้องการมาในกระทู้ด้วยเสมอถึงแม้จะอธิบายไว้ในไฟล์แนบแล้วก็ตาม ทั้งนี้เพื่ออำนวยความสะดวกแก่เพื่อนสมาชิกในการค้นหาข้อมูล
  4. ควรแนบตัวอย่างไฟล์มาที่ฟอรั่มนี้เพื่อเพิ่มความสะดวกในการตอบคำถาม (ขนาดไฟล์ไม่เกิน 500Kb ขนาดภาพไม่เกิน 800*600 Pixel) ไม่แนบเป็น Link มาจากแหล่งอื่น นอกจากนี้ไม่ควรแนบไฟลที่มีข้อมูลสำคัญอันก่อให้เกิดความเสียหายกับตนเองและผู้อื่น
  5. สำหรับคำถามเกี่ยวกับ VBA ให้ลองเขียนมาเองก่อนเสมอ ถามเฉพาะที่ติดปัญหา ระบุ Module, Procedure ที่ติดปัญหาให้ชัดเจน ควรโพสต์ Code ให้แสดงเป็น Code เพื่อสะดวกในการอ่านและทดสอบ (คลิกเพื่อดูตัวอย่าง)
  6. แจ้งผลการใช้งานเมื่อได้รับคำตอบว่าตรงกับความต้องการหรือไม่
sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

การใช้ Data Validation กับ combo box(Active X)

#1

Postby sakajohn » Tue Nov 15, 2016 4:16 pm

ขอสอบถามผู้รู้ครับ
1. ผมใช้ Data Validation ในการทำ list รายชื่อเครื่องที่ใช้พิมพ์ กับ วัตถุดิบ แต่ติดปัญหา คือ เราจะต้องคลิ๊กที่ปุ่ม drop down เพื่อให้แสดงข้อมูลขึ้นมาถึงจะเลือกรายการได้ ถ้าผมต้องการให้ สามารถคีย์ชื่อรายการบางคำแล้วให้รายการแสดงขึ้นมาจะทำได้ไหมครับ
2. ผมลองใช้ combo Box(Active X) มันสามารถพิมพ์แล้วข้อความขึ้นมาได้ แต่ติดตรงที่เราจะต้องมาคลิ๊กที่กล่อง มันถึงจะทำงานได้ ถ้าจะให้มันผสานอยู่ใน cell เลยจะได้ไหมครับ คือเวลาที่คีย์ข้อมูลเราจะกด enter ลงมาเรื่อยๆ พอถึง combo Box ก็สามารถที่จะคีย์ต่อได้เลย โดยไม่ต้องใช้ mouse คลิ๊ก ได้ไหมครับ
3. หรือมีวิธีอื่นๆแนะนำได้ครับ
You do not have the required permissions to view the files attached to this post.

User avatar
Serverchita
Member
Member
Posts: 224
Joined: Wed Nov 18, 2015 1:28 pm

Re: การใช้ Data Validation กับ combo box(Active X)

#2

Postby Serverchita » Tue Nov 15, 2016 7:29 pm

ทำตามวิธีข้อ 1 เลยครับ แต่ต้องตั้งค่าตามตัวอย่างรูปภาพครับ

(หรือจะไม่ได้ติ๊กที่ Show ก็ได้นะครับ จะได้ไม่ต้องกดบ่อย)
You do not have the required permissions to view the files attached to this post.

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#3

Postby sakajohn » Wed Nov 16, 2016 10:58 am

ขอบคุณคุณServerchita มากครับ แต่มันก็ยังไม่ตอบโจทย์ที่ผมต้องการครับ คือลองทำดูแล้วตอนนี้ก็คือผู้ใช้จะพิมพ์อะไรลงไปก็ได้ซึ่งจะไม่เป็นไปตามที่เรากำหนด ตอนที่ผมยกตัวอย่างคือมันมีแค่ 9 รายการ ถ้ามันมีประมาณ 20 - 30 รายการ ผมต้องการให้พิมพ์บางคำแล้วมันขึ้นมาให้เลือกได้ เหมือนกับการทำ combo box(Active X) ถ้าจะทำแบบวิธีที่2 จะทำได้ไหมครับ

User avatar
Serverchita
Member
Member
Posts: 224
Joined: Wed Nov 18, 2015 1:28 pm

Re: การใช้ Data Validation กับ combo box(Active X)

#4

Postby Serverchita » Wed Nov 16, 2016 3:35 pm

ต้องรอท่านอื่นมาตอบให้ครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#5

Postby snasui » Wed Nov 16, 2016 8:58 pm

sakajohn wrote:ขอสอบถามผู้รู้ครับ
1. ผมใช้ Data Validation ในการทำ list รายชื่อเครื่องที่ใช้พิมพ์ กับ วัตถุดิบ แต่ติดปัญหา คือ เราจะต้องคลิ๊กที่ปุ่ม drop down เพื่อให้แสดงข้อมูลขึ้นมาถึงจะเลือกรายการได้ ถ้าผมต้องการให้ สามารถคีย์ชื่อรายการบางคำแล้วให้รายการแสดงขึ้นมาจะทำได้ไหมครับ
2. ผมลองใช้ combo Box(Active X) มันสามารถพิมพ์แล้วข้อความขึ้นมาได้ แต่ติดตรงที่เราจะต้องมาคลิ๊กที่กล่อง มันถึงจะทำงานได้ ถ้าจะให้มันผสานอยู่ใน cell เลยจะได้ไหมครับ คือเวลาที่คีย์ข้อมูลเราจะกด enter ลงมาเรื่อยๆ พอถึง combo Box ก็สามารถที่จะคีย์ต่อได้เลย โดยไม่ต้องใช้ mouse คลิ๊ก ได้ไหมครับ
3. หรือมีวิธีอื่นๆแนะนำได้ครับ


:D ลองศึกษาจาก Link นี้ครับ https://www.extendoffice.com/documents/ ... te.html#a1

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#6

Postby sakajohn » Thu Nov 17, 2016 11:51 am

snasui wrote:
sakajohn wrote:ขอสอบถามผู้รู้ครับ
1. ผมใช้ Data Validation ในการทำ list รายชื่อเครื่องที่ใช้พิมพ์ กับ วัตถุดิบ แต่ติดปัญหา คือ เราจะต้องคลิ๊กที่ปุ่ม drop down เพื่อให้แสดงข้อมูลขึ้นมาถึงจะเลือกรายการได้ ถ้าผมต้องการให้ สามารถคีย์ชื่อรายการบางคำแล้วให้รายการแสดงขึ้นมาจะทำได้ไหมครับ
2. ผมลองใช้ combo Box(Active X) มันสามารถพิมพ์แล้วข้อความขึ้นมาได้ แต่ติดตรงที่เราจะต้องมาคลิ๊กที่กล่อง มันถึงจะทำงานได้ ถ้าจะให้มันผสานอยู่ใน cell เลยจะได้ไหมครับ คือเวลาที่คีย์ข้อมูลเราจะกด enter ลงมาเรื่อยๆ พอถึง combo Box ก็สามารถที่จะคีย์ต่อได้เลย โดยไม่ต้องใช้ mouse คลิ๊ก ได้ไหมครับ
3. หรือมีวิธีอื่นๆแนะนำได้ครับ


:D ลองศึกษาจาก Link นี้ครับ https://www.extendoffice.com/documents/ ... te.html#a1


ผมลองทำตาม ลิงค์ ที่อาจารย์ให้แล้วครับ มีปัญหาอยากจะถามเพิ่มคือ

1. ตามไฟล์แนบ ถ้าเรา Double click ที่ cell ไหนก็จะมี combo box ขึ้นมา แต่ยังไม่มีรายการใน combobox
2. เรายังต้อง Double click ที่ cell ก่อน combo box ถึงจะโชว์ขึ้นมาใช่ไหมครับ ถ้าเรา enter เฉยๆ มันก็จะไม่โชว์ combo boxใช่ไหมครับ
3. เราจะให้แสดงรายการที่เราต้องการยังไงครับ ตามที่ดูจาก ลิงค์ ไม่ได้บอกวิธี ผมลองกำหนด ที่ property ของ combo box ตรงช่อง Listfillrange ข้อมูลก็ไม่แสดงครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#7

Postby snasui » Thu Nov 17, 2016 7:49 pm

:D ตัวอย่างการปรับ Code ตามด้านล่างครับ

Code: Select all

    'Other code
    If Target.Validation.Type = 3 Then
        Cancel = True
        xStr = "Sheet1!G9:G12"
        With xCombox
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 5
            .Height = Target.Height + 5
            .ListFillRange = xStr
            .LinkedCell = Target.Address
        End With
        xCombox.Activate
        Me.TempCombo.DropDown
    End If
    'Other code


sakajohn wrote:2. เรายังต้อง Double click ที่ cell ก่อน combo box ถึงจะโชว์ขึ้นมาใช่ไหมครับ ถ้าเรา enter เฉยๆ มันก็จะไม่โชว์ combo boxใช่ไหมครับ


ถูกต้องครับ

sakajohn wrote:3. เราจะให้แสดงรายการที่เราต้องการยังไงครับ ตามที่ดูจาก ลิงค์ ไม่ได้บอกวิธี ผมลองกำหนด ที่ property ของ combo box ตรงช่อง Listfillrange ข้อมูลก็ไม่แสดงครับ


ปรับ Code ตามด้านบนแล้วทดสอบดูใหม่ครับ

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#8

Postby sakajohn » Thu Nov 17, 2016 9:17 pm

อาจารย์ครับ ถ้าผมต้องการให้กด enter แล้วโชว์ combo box จะทำได้ไหมครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#9

Postby snasui » Thu Nov 17, 2016 9:59 pm

:D ทำได้ครับ ปรับ Code ให้เหลือเฉพาะใน Worksheet_SelectionChange กับ TempCombo_KeyDown ส่วน Code อื่นไม่ต้องใช้ โดยต้องปรับ Code ภายใน Procedure นี้เพื่อให้ตรงกับที่ต้องการใช้งานครับ

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#10

Postby sakajohn » Fri Nov 18, 2016 9:08 am

snasui wrote::D ทำได้ครับ ปรับ Code ให้เหลือเฉพาะใน Worksheet_SelectionChange กับ TempCombo_KeyDown ส่วน Code อื่นไม่ต้องใช้ โดยต้องปรับ Code ภายใน Procedure นี้เพื่อให้ตรงกับที่ต้องการใช้งานครับ

ผมลองปรับ code แล้วครับ ตอนนี้คือ enter แล้วจะขึ้น combo box แต่มันจะไม่ค้างไว้ให้เลือกครับ ไม่ทราบว่าผมต้องปรับ code ตรงไหนเพิ่มหรือเปล่าครับ รบกวนช่วยชี้แนะด้วยครับ
You do not have the required permissions to view the files attached to this post.

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#11

Postby snasui » Fri Nov 18, 2016 6:10 pm

:D ตัวอย่างการปรับ Code ครับ

Code: Select all

Private Sub Worksheet_Selectionchange(ByVal Target As Range)
    Dim xStr As String
    Dim xCombox As OLEObject
    Dim xWs As Worksheet
    Set xWs = Application.ActiveSheet
    On Error Resume Next
    Application.EnableEvents = False
    Set xCombox = xWs.OLEObjects("TempCombo")
    With xCombox
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
    End With
    If Target.Validation.Type = 3 Then
        Cancel = True
        xStr = "Sheet1!G9:G12"
        With xCombox
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 5
            .Height = Target.Height + 5
            .ListFillRange = xStr
            .LinkedCell = Target.Address
        End With
        xCombox.Activate
        Me.TempCombo.DropDown
    End If
    Application.EnableEvents = True
End Sub

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#12

Postby sakajohn » Sat Nov 19, 2016 6:48 pm

ได้แล้วครับอาจารย์ แต่ถ้าเราจะ lock ให้comboboxขึ้นเฉพาะ cell B2 เท่านั้น เราต้องไปกำหนดที่ตรงไหนครับ แล้วถ้าเราใช้วิธีนี้ ก็จะ protect sheet ไม่ได้ใช่ไหมครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#13

Postby snasui » Sat Nov 19, 2016 11:15 pm

:D กำหนดให้ขึ้นที่เซลล์ใดก็ต้องเขียนโปรแกรมเพิ่ม ลองเขียนมาเองก่อนครับ

การ Protect สามารถทำได้ตามปกติ คลิกขวาที่ B2 > Format Cells > ที่แถบ Protection ปลดเครื่องหมายที่ Locked > ป้องกันแผ่นงาน

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#14

Postby sakajohn » Sat Nov 19, 2016 11:27 pm

ต้องเขียนคำสั่งขึ้นมาใหม่เลยใช่ไหมครับ ไม่ได้ไปแก้ไขใน code เดิมใช่ไหมครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#15

Postby snasui » Sat Nov 19, 2016 11:31 pm

:D เขียนเข้าไปใน Code เดิมครับ ตรวจสอบว่าเซลล์ปัจจุบันเป็นเซลล์เป้าหมายหรือไม่ หากใช่ค่อยขึ้น Object ให้เลือกใช้ เช่นนี้ครับ

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#16

Postby sakajohn » Sun Nov 20, 2016 12:36 am

snasui wrote::D เขียนเข้าไปใน Code เดิมครับ ตรวจสอบว่าเป็นปัจจุบันเป็นเซลล์เป้าหมายหรือไม่ หากใช่ค่อยขึ้น Object ให้เลือกใช้ เช่นนี้ครับ

Code: Select all

 "other code'
        range("B2").select
        xCombox.Activate
        Me.TempCombo.DropDown
    End If
    Application.EnableEvents = True
End Sub

ผมลองใส่ดูแล้ว กลายเป็นว่าเมื่อ อยู่ที่ B2 combo box จะไม่แสดง ทำไมถึงเป็นอย่างนั้นครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#17

Postby snasui » Sun Nov 20, 2016 6:58 am

:D ตัวอย่าง Code ครับ

Code: Select all

'----Other code----
With xCombox
    .ListFillRange = ""
    .LinkedCell = ""
    .Visible = False
End With
If Target.Address <> [b2].Address Then
    Application.EnableEvents = True
    Exit Sub
End If
'----Other code----

sakajohn
Member
Member
Posts: 98
Joined: Tue Aug 06, 2013 10:55 am

Re: การใช้ Data Validation กับ combo box(Active X)

#18

Postby sakajohn » Sun Nov 20, 2016 11:05 pm

อาจารย์ครับ ถ้าอยากให้ขึ้น 2 cell เช่น B2 และ B4 ทำได้ไหมครับ ขอถามตรงสูตร If Target.Address <> [b2].Address Then กับ If (Target.Address = range("b2").Address) Then ต่างกันไหมครับ

User avatar
snasui
Site Admin
Site Admin
Posts: 20492
Joined: Sun Jan 24, 2010 12:33 pm
Location: Songkhla, Thailand
Contact:

Re: การใช้ Data Validation กับ combo box(Active X)

#19

Postby snasui » Sun Nov 20, 2016 11:22 pm

:D กรณี B2 หรือ B4 สามารถใช้ Or เข้ามาช่วยได้ครับ การอ้างอิงตามลักษณะที่ถามมานั้นเหมือนกันครับ

User avatar
DhitiBank
Gold
Gold
Posts: 1472
Joined: Mon Oct 15, 2012 12:07 am

Re: การใช้ Data Validation กับ combo box(Active X)

#20

Postby DhitiBank » Mon Nov 21, 2016 3:38 pm

2016-11-21 15_33_40-Microsoft Visual Basic for Applications - combo box.xlsm [break] - [Sheet1 (Code.png


อาจารย์ครับ range.Validation.Type เป็นการเช็คอะไรครับ ทำไมผมลองคีย์ใน immediate window เพื่อดูค่ากลับแสดงค่าผิดพลาดว่า "Application-defined of Object-defined error" ครับ
You do not have the required permissions to view the files attached to this post.


Return to “Excel”

Who is online

Users browsing this forum: Google [Bot] and 7 guests